SQL语句分别更新多条记录多个字段

通常我们使用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语句分别更新多条记录多个字段》 SQL Statement

    原文作者:冷大大_hawkleng
    原文地址: https://www.jianshu.com/p/75279d530693
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞