3진 논리¶
SQL 표준에 지정된 것처럼, 3진 논리 또는 3치 논리(3VL)는 TRUE, FALSE, UNKNOWN이라는 세 가지 진리 값을 가진 논리 체계입니다. Snowflake에서는 UNKNOWN이 NULL로 표시됩니다. 3진 논리는 조건자뿐 아니라 부울 식의 계산에도 적용되고, AND, OR, NOT 등의 논리 연산 결과에 영향을 줍니다.
이 항목의 내용:
진리표¶
이 섹션에서는 비교 및 논리 연산자의 진리표에 대해 설명합니다.
비교 연산자¶
비교 연산자의 피연산자가 NULL이면 결과는 NULL입니다. 비교 연산자는 다음과 같습니다.
논리 연산자¶
BOOLEAN 열 C
가 주어진 경우는 다음과 같습니다.
|
|
|
|
---|---|---|---|
TRUE |
NULL |
TRUE |
FALSE |
FALSE |
FALSE |
NULL |
TRUE |
NULL |
NULL |
NULL |
NULL |
또한, 다음 사항이 적용됩니다.
|
|
|
|
---|---|---|---|
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
NULL |
NULL |
NULL |
NULL |
NULL |
조건식의 사용법 노트¶
이 섹션에서는 다음 조건식과 관련된 동작을 설명합니다.
IFF 동작¶
IFF 함수는 3진 논리에 대해 다음 결과를 반환합니다. BOOLEAN 열 C
가 주어진 경우는 다음과 같습니다.
|
|
---|---|
TRUE |
|
FALSE |
|
NULL |
|
[ NOT ] IN 동작¶
[ NOT ] IN 함수는 3진 논리에 대해 다음 결과를 반환합니다. 3개의 숫자 열 c1
, c2
, c3
이 주어진 경우는 다음과 같습니다.
c1 IN (c2, c3, ...)
은 구문상(c1 = c2 or c1 = c3 or ...)
와 같습니다.결과적으로,
c1
의 값이 NULL일 때 식c1 IN (c2, c3, NULL)
은 항상 FALSE로 계산됩니다.c1 NOT IN (c2, c3, ... )
은 구문상(c1 <> c2 AND c1 <> c3 AND ...)
와 같습니다.따라서
c1 NOT IN (c2, c3)
이 TRUE라도c1 NOT IN (c2, c3, NULL)
은 NULL로 계산됩니다.