programing

T-SQL XOR 연산자

starjava 2023. 6. 21. 22:01
반응형

T-SQL XOR 연산자

SQL Server(T-SQL)에 XOR 연산자 또는 이와 동등한 기능이 있습니까?

다음을 위한 캐럿(^)이라는 비트 단위의 XOR 연산자가 있습니다.

SELECT 170 ^ 75

결과는 225입니다.

논리적 XOR의 경우 ANY 키워드를 사용하고 모두 사용하지 않습니다.

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

부울 대수를 사용하면 다음을 쉽게 알 수 있습니다.

A xor B = (not A and B) or (A and not B)


A B | 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)이라고 말했습니다.저는 당신이 왜 여기에 주어진 답변을 그것에 대한 답변으로 받아들이기로 선택했는지 모르겠습니다.만약 x 또는 이를 위해 필요하다면 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은 SQL Server 2012 이후의 짧은 형식만 지원합니다.

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

xor 연산자는^

예:SELECT A ^ B여기서 A와 B는 정수 범주 데이터 유형입니다.

그렇다.^ http://msdn.microsoft.com/en-us/library/ms190277.aspx

참고 항목페이지 중간의 일부 코드Bitwise NOT 연산자를 사용하여 SQL Server에서 비트를 전환하는 방법

<>일반적으로 불리언에 적용할 수 있는 XOR의 좋은 대체물입니다.

귀하의 의견에서:

예: WHERE(참고가 null임) ^(ID가 null임)

시도해 볼 수도 있습니다.

where
   (case when Note is null then 1 else 0 end)
 <>(case when ID is null then 1 else 0 end)

언급URL : https://stackoverflow.com/questions/5411619/t-sql-xor-operator

반응형