Битовая переменная MS SQL вы не можете (@a)? - PullRequest
2 голосов
/ 29 сентября 2010

в c # у меня есть:

 a = !a

(если false делает его истинным, если true делает его ложным)

в sql я хочу сделать то же самое с переменной BIT

что-то вроде:

 declare @a bit
 set @a = 1
 select @a
 set @a = not (@a)
 select @a

могу я?

я всегда мог бы сделать IF, но это "лучше выглядело бы":)

Ответы [ 3 ]

6 голосов
/ 29 сентября 2010

попробуйте это, используя побитовое значение not

Битовый оператор ~ выполняет побитовое логическое НЕ для выражения, принимая каждый бит по очереди.Если выражение имеет значение 0, биты в наборе результатов устанавливаются в 1;в противном случае бит в результате очищается до значения 0. Другими словами, единицы заменяются на нули, а нули - на единицы.

declare @a bit
 set @a = 0
 select @a
 set @a = ~@a
 select @a

сделать его 1

declare @a bit
 set @a = 1
 select @a
 set @a = ~@a
 select @a
0 голосов
/ 29 сентября 2010

Вот код:

set @a = @a^1
0 голосов
/ 29 сентября 2010

Для этого вы можете использовать оператор XOR .

declare @a bit
set @a = 1
select @a

set @a = @a ^ 1
select @a

set @a = @a ^ 1
select @a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...