【问题标题】:Multiple UPDATE, same column, different values, different WHERE conditions多个 UPDATE,同一列,不同的值,不同的 WHERE 条件
【发布时间】:2014-03-07 18:24:52
【问题描述】:
我正在尝试在 where 中更新具有不同条件的字段。
其实我有下一条指令:
Update StmHistItm Set SHI_nPayable = @minPayable where SHI_iItemPK = @minrecno
Update StmHistItm Set SHI_nPayable = @maxPayable where SHI_iItemPK = @maxrecno
有没有办法把这两条指令合二为一?
【问题讨论】:
标签:
sql
sql-server
sql-server-2008
sql-update
【解决方案1】:
您可以使用case 表达式并结合where 子句:
UPDATE StmHistItm
SET SHI_nPayable = CASE SHI_iItemPK
WHEN @minrecno THEN @minPayable
WHEN @maxrecno THEN @maxPayable
END
WHERE SHI_iItemPK IN (@minrecno, @maxrecno)