논리 연산자

논리 연산자 (Logical operators)

boolean 값들 사이에서 논리 연산을 수행하는 연산자들이에요. 특히 NULL이 섞였을 때 결과가 어떻게 되는지가 핵심이에요.

출처: 문서

본문

논리 연산자 (Logical operators)

연산자 설명
AND 두 값이 모두 true일 때 true a AND b
OR 둘 중 하나라도 true일 때 true a OR b
NOT 값이 false일 때 true NOT a

NULL이 논리 연산자에 미치는 영향 (Effect of NULL on logical operators)

AND 비교의 결과는 표현식의 한쪽 또는 양쪽이 NULL이면 NULL이 될 수 있어요. AND 연산자의 한쪽이라도 FALSE이면 표현식은 FALSE로 평가돼요.

SELECT CAST(null AS boolean) AND true; -- null

SELECT CAST(null AS boolean) AND false; -- false

SELECT CAST(null AS boolean) AND CAST(null AS boolean); -- null

OR 비교의 결과는 표현식의 한쪽 또는 양쪽이 NULL이면 NULL이 될 수 있어요. OR 연산자의 한쪽이라도 TRUE이면 표현식은 TRUE로 평가돼요.

SELECT CAST(null AS boolean) OR CAST(null AS boolean); -- null

SELECT CAST(null AS boolean) OR false; -- null

SELECT CAST(null AS boolean) OR true; -- true

다음 진리표는 ANDOR에서 NULL을 어떻게 처리하는지 보여줘요.

a b a AND b a OR b
TRUE TRUE TRUE TRUE
TRUE FALSE FALSE TRUE
TRUE NULL NULL TRUE
FALSE TRUE FALSE TRUE
FALSE FALSE FALSE FALSE
FALSE NULL FALSE NULL
NULL TRUE NULL TRUE
NULL FALSE FALSE NULL
NULL NULL NULL NULL

NULL의 논리 보수도 NULL이에요. 다음 예시가 보여주는 것처럼요.

SELECT NOT CAST(null AS boolean); -- null

다음 진리표는 NOT에서 NULL을 어떻게 처리하는지 보여줘요.

a NOT a
TRUE FALSE
FALSE TRUE
NULL NULL

더 알아보기 (Learn more)

조건 분기에서 boolean을 다루는 다른 방법은 조건 함수 문서를 참고해 보세요.