【发布时间】:2010-09-29 13:54:38
【问题描述】:
在 c# 中我有一个:
a = !a
(如果为假则为真,如果为真则为假)
在 sql 中我想对 BIT 变量做同样的事情
类似:
declare @a bit
set @a = 1
select @a
set @a = not (@a)
select @a
我可以吗?
我总是可以做一个 IF,但这会“看起来更好”:)
【问题讨论】:
在 c# 中我有一个:
a = !a
(如果为假则为真,如果为真则为假)
在 sql 中我想对 BIT 变量做同样的事情
类似:
declare @a bit
set @a = 1
select @a
set @a = not (@a)
select @a
我可以吗?
我总是可以做一个 IF,但这会“看起来更好”:)
【问题讨论】:
使用按位不试试这个
~ 按位运算符对表达式执行按位逻辑 NOT,依次取每个位。如果表达式的值为 0,则结果集中的位设置为 1;否则,结果中的位被清除为 0。换句话说,将 1 更改为 0,将 0 更改为 1。
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
【讨论】:
您可以为此使用XOR 运算符。
declare @a bit
set @a = 1
select @a
set @a = @a ^ 1
select @a
set @a = @a ^ 1
select @a
【讨论】:
代码如下:
set @a = @a^1
【讨论】: