sql-server-2012 - 如何在一个查询中使用多个 where 子句更新多个表
问题描述
有没有办法用一个 sql 查询进行多次更新?
就像是:
UPDATE Table1
SET Column1 = Expression1 WHERE Conditions 1
SET Column2 = Expression2 WHERE Conditions 2
SET Column3 = Expression3 WHERE Conditions 3
...;
谢谢!
解决方案
是的,它看起来像一个反模式,但是从语法上讲,你可以使用Case表达式来做到这一点:
UPDATE Table1
SET
Column1 = ( case when condition1 then Expression1 else Column1 end ),
Column2 = ( case when condition2 then Expression2 else Column2 end )
顺便说一句,我猜您将“多个表”与“多个列”混合在一起。
推荐阅读
- r - 如何从嵌套列表中的列表绑定数据表?
- c# - 传入字典的模型项是'System.Collections.Generic.List'类型,如何处理?
- c# - excel interop c#:更改行颜色
- google-apps-script - Google Scripts:如何获取活动编辑器的姓名/电子邮件?
- c++ - 当由另一个在堆上分配的对象创建时,对象在哪里分配?
- assembly - 数组索引,代码 11 和 10 的问题
- python - 垂直对齐 str 到反向水平序列
- c# - 使用 XmlSerialzer 将对象属性转换为属性值
- api - 使用 API 调用 Flutter 后台通知
- python - solve_ivp 微分方程求解器,不整合所有返回值的方法?