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中翻转一下