多个UPDATE,相同列,不同值,不同WHERE条件

时间:2014-03-07 18:24:53

标签: sql sql-server sql-server-2008 sql-update

我正在尝试更新具有不同条件的字段。 其实我有下一个指示:

Update StmHistItm Set SHI_nPayable = @minPayable where SHI_iItemPK = @minrecno
Update StmHistItm Set SHI_nPayable = @maxPayable where SHI_iItemPK = @maxrecno

有没有办法只用一个来做这两个指令?

1 个答案:

答案 0 :(得分: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)