多个条件的多次更新

时间:2013-09-27 00:22:05

标签: mysql sql sql-server oracle sql-update

看起来像一个简单的问题,但我无法在MsSql中得到我需要的东西,而我可以在MySQL和Oracle中轻松完成。

在MySQL中: 更新table_spec_data SET覆盖率= 33 WHERE(specification_id,data_id)IN ( (247,1), (248,2), (249,3) );

在Oracle中: 更新table_spec_data SET覆盖率= 33 WHERE(specification_id,data_id)IN ( 从双联盟中选择247,1 选择248,2 FROM DUAL UNION SELECT 249,3 FROM DUAL );

有人知道如何使用 MSSqlServer 吗?

1 个答案:

答案 0 :(得分:1)

我认为你需要这么做:

 UPDATE table_spec_data SET coverage=33 WHERE 
     (specification_id = 247 AND data_id = 1)
     OR (specification_id = 248 AND data_id = 2)
     OR (specification_id = 249 AND data_id = 3)