Как переключить значения столбцов от 0 до 1 и наоборот с помощью инструкции обновления?
У меня есть таблица 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
Ответы
Ответ 1
Script 1: Демо в скрипте SQL
UPDATE dbo.Table1 SET col2 = (CASE col2 WHEN 1 THEN 0 ELSE 1 END);
Script 2. Если значения всегда равны 0 или 1, вы можете использовать оператор Bitwise Exclusive OR. Демо в скрипте SQL
UPDATE dbo.Table1 SET col2 = (col2 ^ 1);
Ответ 2
Поскольку вы упомянули, что используете INT, как насчет:
update dbo.Table1 set col2 = 1 - col2;
Ответ 3
Я уверен, что есть более элегантный способ, но это должно работать:
UPDATE Table1
SET col2 = CASE col2 WHEN 0 THEN 1 WHEN 1 THEN 0 ELSE col2 END
Ответ 4
Если вы используете правильное логическое (BIT) на SQL Server, вы можете использовать это: http://sqlfiddle.com/#!6/0ed3c/1
UPDATE dbo.Table1 SET col2 = ~col2;
Ответ 5
Очень простой запрос
update table set col= (col-1)* -1;
Объяснение: