Bel*_*ash 28 sql t-sql sql-server
如何更新表列以恢复其值(如果value为false,则设置为true;如果为true,则设置为false!null保持为null).
请排除使用的解决方案case when或IIF()我想要的内容如下
UPDATE mytable SET IsEditable = !IsEditable
Run Code Online (Sandbox Code Playgroud)
And*_*yev 43
您可以使用按位NOT运算符:
update mytable set IsEditable = ~IsEditable
Run Code Online (Sandbox Code Playgroud)
Ion*_*nic 17
只要用这个:
UPDATE mytable SET IsEditable=IsEditable^1
Run Code Online (Sandbox Code Playgroud)
如果你想测试它:
SELECT CONVERT(bit,0)^1, CONVERT(bit,1)^1
Run Code Online (Sandbox Code Playgroud)
作为数学解决方案,您可以使用它
update mytable set IsEditable = 1 - IsEditable;
Run Code Online (Sandbox Code Playgroud)
IsEditable = 0 => 1 - IsEditable = 1IsEditable = 1 => 1 - IsEditable = 0IsEditable = Null => 1 - IsEditable = Null