如何更新表列以恢复其值(如果value为false,则设置为true;如果为true,则设置为false!null保持为null)。
请排除使用case when
或IIF()
我需要的内容
UPDATE mytable SET IsEditable = !IsEditable
答案 0 :(得分:39)
您可以使用bitwise NOT operator:
update mytable set IsEditable = ~IsEditable
答案 1 :(得分:15)
请使用:
UPDATE mytable SET IsEditable=IsEditable^1
如果你想测试它:
SELECT CONVERT(bit,0)^1, CONVERT(bit,1)^1
答案 2 :(得分:5)
作为数学解决方案,您可以使用此
IsEditable = 0
1 - IsEditable = 1
=> IsEditable = 1
1 - IsEditable = 0
=> IsEditable = Null
1 - IsEditable = Null
=> self