查询中有多个SET表达式?

时间:2010-11-09 19:53:20

标签: sql sql-server ssms

想要更新表格列中的特定数据。

我可以使用以下内容进行一次输入:

UPDATE [BULDING].[dbo].[TB_DATA]
SET OFFICE
_ID = '4' where OFFICE__ID = '8';

但是我应该使用什么来进行多次更改 - 下面显然不起作用:

UPDATE [BULDING].[dbo].[TB_DATA]
SET OFFICE
_ID = '4' where OFFICE_ID = '8'
SET OFFICE
_ID = '4' where OFFICE_ID = '10'
SET OFFICE
_ID = '11' where OFFICE__ID = '3';

谢谢!

1 个答案:

答案 0 :(得分:6)

UPDATE [BULDING].[dbo].[TB_DATA]
SET OFFICE_ID = 
    case when office_id in ('8', '10') then '4'
        when office_id = '3' then '11'
        else office_id
    end