T-SQL XOR运算符

SQL Server(T-SQL)中是否存在XOR运算符或等效函数?

有一个按位XOR操作符 – ^(^),即:

SELECT 170 ^ 75 

结果是225。

对于逻辑异或,请使用ANY关键字而不是全部,即

 WHERE 5 > ANY (SELECT foo) AND NOT (5 > ALL (SELECT foo)) 

使用布尔代数,很容易certificate:

 A xor B = (not A and B) or (A and not B) AB | f = notA and B | g = A and notB | f or g | A xor B ----+----------------+----------------+--------+-------- 0 0 | 0 | 0 | 0 | 0 0 1 | 1 | 0 | 1 | 1 1 0 | 0 | 1 | 1 | 1 1 1 | 0 | 0 | 0 | 0 

正如你在评论中所阐明的,Spacemoses,你曾经说过一个例子:WHERE(注意是null)^(ID为null)。 我不明白为什么你select接受这里给出的任何答案作为回答。 如果我需要一个异或,我想我不得不使用AND / OR等价的逻辑:

 WHERE (Note is null and ID is not null) OR (Note is not null and ID is null) 

这相当于:

 WHERE (Note is null) XOR (ID is null) 

当“XOR”不可用时。

MS SQL只是简单的forms(因为SQL Server 2012):

 1=iif( a=b ,1,0)^iif( c=d ,1,0) 

异或运算符是^

例如: SELECT A ^ B其中A和B是整型数据types。

这是^ http://msdn.microsoft.com/en-us/library/ms190277.aspx

另请参见页面中间的一些代码如何使用Bitwise NOT运算符在SQL Server中翻转一下