논리 연산자
논리 연산자 (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
다음 진리표는 AND와 OR에서 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을 다루는 다른 방법은 조건 함수 문서를 참고해 보세요.