Ответ 1
Да, оператор ~ будет работать.
update foo
set Sync = [email protected]
Я пытаюсь выполнить побитовое НЕ в SQL Server. Я хотел бы сделать что-то вроде этого:
update foo
set Sync = NOT @IsNew
Примечание. Я начал писать это и узнал ответ на свой вопрос, прежде чем закончил. Я по-прежнему хотел поделиться с сообществом, поскольку в документации MSDN не было документации, до тех пор, пока я не добавил ее в Содержимое Сообщества.
Да, оператор ~ будет работать.
update foo
set Sync = [email protected]
Побитовое NOT: ~
Побитовое И: &
Побитовое ИЛИ: |
Побитовое XOR: ^
Отсутствие MSDN? http://msdn.microsoft.com/en-us/library/ms173468(SQL.90).aspx
~: Выполняет побитовое логическое НЕ-операцию для целочисленного значения. Побитовый оператор выполняет побитовое логическое НЕ для выражения, беря каждый бит по очереди. Если выражение имеет значение 0, биты в результирующем наборе равны 1; в противном случае бит в результате очищается до значения 0. Другими словами, они меняются на нули, а нули изменяются на единицы.
Для полноты:
SELECT b, 1 - b
FROM
(SELECT cast(1 AS BIT) AS b
UNION ALL
SELECT cast(0 AS BIT) AS b) sampletable
~ оператор будет работать только с BIT,
попробуйте: ~ CAST (@IsNew AS BIT)