논리 연산자
논리 연산자(logical operator)는 피연산자로 불리언(boolean) 연산식이 지정되며, 연산 결과로 TRUE, FALSE, NULL 을 반환한다. 불리언 값이 수식에 사용될 때에는 TRUE 는 1, FALSE 는 0으로 해석된다.
참고
11.2 버전부터 논리식이 아닌 값(정수·컬럼 등)을 피연산자로 사용하면 “operand must be logical expression.” 오류가 발생한다. 비논리 값을 직접 조건절에 사용하던 구문은 명시적인 비교 연산으로 바꿔야 한다. 상수 조건 WHERE 1 은 WHERE 1=1 로, 컬럼 조건 WHERE column_name 은 WHERE column_name <> 0 으로 작성한다.
논리 연산자의 종류 및 진리표는 아래와 같다.
논리 연산자
논리 연산자 |
설명 |
조건식 |
|---|---|---|
AND, && |
피연산자가 모두 TRUE이면 TRUE를 반환한다. |
a AND b |
OR, || |
피연산자가 모두 NULL이 아니고, 하나 이상의 피연산자가 TRUE이면 TRUE를 반환한다. SQL 구문 관련 파라미터인 pipes_as_concat 파라미터가 no이면, 이중 파이프 기호(||)를 OR 연산자로 사용할 수 있다. |
a OR b |
XOR |
피연산자가 모두 NULL이 아니고, 두 피연산자의 값이 다르면 TRUE를 반환한다. |
a XOR b |
NOT, ! |
단항 연산자이며, 피연산자가 FALSE이면 TRUE, 피연산자가 TRUE이면 FALSE를 반환한다. |
NOT a |
논리 연산자의 진리표
a |
b |
a AND b |
a OR b |
NOT a |
a XOR b |
|---|---|---|---|---|---|
TRUE |
TRUE |
TRUE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
NULL |
NULL |
TRUE |
FALSE |
NULL |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
NULL |
FALSE |
NULL |
TRUE |
NULL |