我有下表 我想在单个查询中将状态从0更新为1,将1更新为0
ID Name Status
------------------------------------------
1 Ben 0
2 John 1
3 Mark 0
4 Gates 0
5 Ricky 1
答案 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