通常我们使用UPDATE语句更新记录,例如:
UPDATE [MyTable] SET [MyField1]=Value1,[MyField2]=Value2 WHERE [ConditionField]=SomeValue
但有时我们需要在一条UPDATE语句中根据不同条件分别更新多条记录的多个字段,这时,我们可以使用如下示例来完成:
--更新一个字段
UPDATE [MyTable]
SET [MyField] = CASE [Id]
WHEN 1 THEN Value1
WHEN 2 THEN Value2
WHEN 3 THEN Value3
WHEN 4 THEN Value4
END
WHERE [Id] IN (1,2,3,4)
如果同时更新多个字段,可以使用如下示例来完成:
--更新多个字段
UPDATE [MyTable]
SET [MyField1] = CASE [Id]
WHEN 1 THEN Value1
WHEN 2 THEN Value2
WHEN 3 THEN Value3
WHEN 4 THEN Value4
END,
[MyField2] = CASE [Id]
WHEN 1 THEN Value5
WHEN 2 THEN Value6
WHEN 3 THEN Value7
WHEN 4 THEN Value8
END
WHERE [Id] IN (1,2,3,4)
通过以上方式就可以实现一条UPDATE语句根据不同条件更新多条记录的多个字段,减少SQL语句数量,减少数据库的查询操作次数,节约系统资源。
SQL Statement