17

次のようなテーブルTable1があります

col1 col2
---- ----
 A    1
 B    1
 C    1
 D    0
 E    0
 F    0

結果テーブルを次のようにしたい(Updateステートメントを使用して)

col1 col2
---- ----
 A    0
 B    0
 C    0
 D    1
 E    1
 F    1
4

6 に答える 6

34

スクリプト 1 : SQL Fiddle でのデモ

UPDATE dbo.Table1 SET col2 = (CASE col2 WHEN 1 THEN 0 ELSE 1 END);

スクリプト 2 : 値が常に 0 または 1 の場合、ビット単位の排他的 OR 演算子を使用できます。SQL Fiddle でのデモ

UPDATE dbo.Table1 SET col2 = (col2 ^ 1);
于 2012-04-29T04:00:51.187 に答える
20

あなたがINTを使用していると述べたので、どうですか:

update dbo.Table1 set col2 = 1 - col2;
于 2012-04-29T06:40:24.520 に答える
15

もっとエレガントな方法があると思いますが、これはうまくいくはずです:

UPDATE Table1
SET col2 = CASE col2 WHEN 0 THEN 1 WHEN 1 THEN 0 ELSE col2 END
于 2012-04-29T03:59:51.437 に答える
10

SQL Server で適切なブール値 (BIT) を使用している場合は、これを使用できます: http://sqlfiddle.com/#!6/0ed3c/1

UPDATE dbo.Table1 SET col2 = ~col2;
于 2012-04-29T04:20:04.447 に答える
0

あなたはこれを行うことができます :

UPDATE table SET col = 1-col
于 2021-04-23T11:03:09.907 に答える