如何在SQL Server中翻转一下?

Eve*_*ien 71 sql sql-server bit-manipulation

我正在尝试在SQL Server中执行按位NOT.我想做这样的事情:

update foo
set Sync = NOT @IsNew
Run Code Online (Sandbox Code Playgroud)

注意:在我结束之前,我开始写这个并找到我自己问题的答案.我仍然想与社区分享,因为MSDN上缺少这篇文档(直到我将其添加到社区内容中).

Jas*_*aty 101

是的,〜运算符将起作用.

update foo
set Sync = ~@IsNew
Run Code Online (Sandbox Code Playgroud)


Eve*_*ien 28

按位NOT:〜

按位AND:&

按位OR:|

按位异或:^


Blo*_*ard 10

缺少MSDN? http://msdn.microsoft.com/en-us/library/ms173468(SQL.90).aspx

〜:对整数值执行按位逻辑NOT运算.〜按位运算符对表达式执行按位逻辑NOT,依次取每个位.如果expression的值为0,则结果集中的位设置为1; 否则,结果中的位被清除为值0.换句话说,将1更改为零,将零更改为1.