在单个查询中更新列中的值

时间:2013-07-22 09:40:29

标签: sql sql-server-2008

我有下表 我想在单个查询中将状态从0更新为1,将1更新为0

    ID        Name           Status
------------------------------------------
    1          Ben             0
    2          John            1
    3          Mark            0
    4          Gates           0
    5          Ricky           1

3 个答案:

答案 0 :(得分:6)

有许多方法可以做到这一点,因为答案的数量已经显示出来了。我只会:

UPDATE [Table] set status = 1-status

如果表中有非0和非1行不应该触及,我还要添加:

WHERE status in (0,1)

答案 1 :(得分:1)

如果列状态可以是null或状态可以有两个以上的值,则此解决方案应该适合您。

update tab
   set status = case 
                  when status=0 then 1
                  when status=1 then 0
                end 

答案 2 :(得分:0)

如果您只有两个值(例如0和1),请尝试:

UPDATE MyTable
SET Status = CASE WHEN Status = 0 THEN 1 ELSE 0 END