我有一张Table1
如下表
col1 col2
---- ----
A 1
B 1
C 1
D 0
E 0
F 0
我希望结果表应该如下(通过 usingUpdate
语句)
col1 col2
---- ----
A 0
B 0
C 0
D 1
E 1
F 1
我有一张Table1
如下表
col1 col2
---- ----
A 1
B 1
C 1
D 0
E 0
F 0
我希望结果表应该如下(通过 usingUpdate
语句)
col1 col2
---- ----
A 0
B 0
C 0
D 1
E 1
F 1
脚本 1: SQL Fiddle 的演示
UPDATE dbo.Table1 SET col2 = (CASE col2 WHEN 1 THEN 0 ELSE 1 END);
脚本 2:如果值始终为 0 或 1,则可以使用按位异或运算符。SQL Fiddle 上的演示
UPDATE dbo.Table1 SET col2 = (col2 ^ 1);
既然您提到您正在使用 INT,那么如何:
update dbo.Table1 set col2 = 1 - col2;
我敢肯定有一种更优雅的方式,但这应该可行:
UPDATE Table1
SET col2 = CASE col2 WHEN 0 THEN 1 WHEN 1 THEN 0 ELSE col2 END
如果您在 SQL Server 上使用正确的布尔 (BIT),则可以使用:http ://sqlfiddle.com/#!6/0ed3c/1
UPDATE dbo.Table1 SET col2 = ~col2;
非常简单的查询
update table set col= (col-1)* -1;
解释:
0的情况:
update table set col= (0-1)* -1; // return 1;
案例1:
update table set col= (1-1)* -1; // return 0;
你可以这样做 :
UPDATE table SET col = 1-col