通过例子解释:
UPDATE Table SET value=(22,55,99) WHERE id IN (2,5,9)
因此,id=2
,value
的行设置为22
。将id=5
,value
的行设置为55
。等
答案 0 :(得分:14)
您可以使用派生表:
update t set
value = a.value
from Table as t
inner join (values
(22, 2),
(55, 5),
(99, 9)
) as a(id, value) on a.id = t.id
对我而言,这是最优雅的方式,并且它也很容易被夸大(如果你愿意,你可以添加更多列)
答案 1 :(得分:1)
是的,但不像你有:
UPDATE Table
SET value=case when id=2 then 22 when id=5 then 55 when id=9 then 99 end
WHERE id in (2,5,9)
如果您必须为大量字段/记录执行此操作,那么最好只发出一堆专用的update
查询。
答案 2 :(得分:0)
使用CASE
表达式选择更新值:
UPDATE Table SET value = case id when 2 then 22
when 5 then 55
when 9 then 99
end
WHERE id IN (2,5,9)