首页 > 解决方案 > 如何在一个查询中使用多个 where 子句更新多个表

问题描述

有没有办法用一个 sql 查询进行多次更新?

就像是:

UPDATE Table1
SET Column1 = Expression1 WHERE Conditions 1
SET Column2 = Expression2 WHERE Conditions 2
SET Column3 = Expression3 WHERE Conditions 3
...;

谢谢!

标签: sql-server-2012sql-updatemultiple-tables

解决方案


是的,它看起来像一个反模式,但是从语法上讲,你可以使用Case表达式来做到这一点:

UPDATE Table1
SET 
  Column1 = ( case when condition1 then Expression1 else Column1 end  ),
  Column2 = ( case when condition2 then Expression2 else Column2 end  )

顺便说一句,我猜您将“多个表”“多个列”混合在一起。


推荐阅读