비교 연산자(comparison operator)는 왼쪽 피연산자와 오른쪽 피연산자를 비교하여 1 또는 0을 반환한다. 비교 연산의 피연산자들은 같은 데이터 타입이어야 하므로, 시스템에 의해서 묵시적으로 타입이 변환되거나 사용자에 의해 명시적으로 타입이 변환되어야 한다. 다음은 CUBRID에서 지원되는 비교 연산자의 설명 및 리턴 값을 나타낸 표이다.
CUBRID가 지원하는 비교 연산자
비교 연산자 | 설명 | 조건식 | 리턴 값 |
---|---|---|---|
= | 일반 등호이며, 두 피연산자의 값이 같은지 비교한다. 하나 이상의 피연산자가 NULL 이면 NULL 을 반환한다. | 1=2 1=NULL | 0 NULL |
<=> | NULL safe 등호이며, NULL 을 포함하여 두 피연산자의 값이 같은지 비교한다. 피연산자가 모두 NULL 이면 1을 반환한다. | 1<=>2 1<=>NULL | 0 0 |
<>, != | 두 피연산자의 값이 다른지 비교한다. 하나 이상의 피연산자가 NULL 이면 NULL 을 반환한다. | 1<>2 | 1 |
> | 왼쪽 피연산자가 오른쪽 피연산자보다 값이 큰지 비교한다. 하나 이상의 피연산자가 NULL 이면 NULL 을 반환한다. | 1>2 | 0 |
< | 왼쪽 피연산자가 오른쪽 피연산자보다 값이 작은지 비교한다. 하나 이상의 피연산자가 NULL 이면 NULL 을 반환한다. | 1<2 | 1 |
>= | 왼쪽 피연산자가 오른쪽 피연산자보다 값이 크거나 같은지 비교한다. 하나 이상의 피연산자가 NULL 이면 NULL 을 반환한다. | 1>=2 | 0 |
<= | 왼쪽 피연산자가 오른쪽 피연산자보다 값이 작거나 같은지 비교한다. 하나 이상의 피연산자가 NULL 이면 NULL 을 반환한다. | 1<=2 | 1 |
IS boolean_value | 왼쪽 피연산자가 오른쪽 불리언 값과 같은지 비교한다. 불리언 값은 TRUE, FALSE, NULL 이 될 수 있다. | 1 IS FALSE | 0 |
IS NOT boolean_value | 왼쪽 피연산자가 오른쪽 불리언 값과 다른지 비교한다. 불리언 값은 TRUE, FALSE, NULL 이 될 수 있다. | 1 IS NOT FALSE | 1 |
구문 1
expression comparison_operator expression
expression :
• bit string
• character string
• numeric value
• date-time value
• collection value
• NULL
comparison_operator :
=
| <=>
| <>
| !=
| >
| <
| >=
| <=
구문 2
expression IS [NOT] boolean_value
expression :
• bit string
• character string
• numeric value
• date-time value
• collection value
• NULL
boolean_value :
< UNKNOWN | NULL>
| TRUE
| FALSE
예제
SELECT (1 <> 0); -- TRUE이므로 1을 출력한다.
SELECT (1 != 0); -- TRUE이므로 1을 출력한다.
SELECT (0.01 = '0.01'); -- 숫자 타입과 문자열 타입을 비교했으므로 에러가 발생한다.
SELECT (1 = NULL); -- NULL을 출력한다.
SELECT (1 <=> NULL); -- FALSE이므로 0을 출력한다.
SELECT (1.000 = 1); -- TRUE이므로 1을 출력한다.
SELECT ('cubrid' = 'CUBRID'); -- 대소문자를 구분하므로 0을 출력한다.
SELECT ('cubrid' = 'cubrid'); -- TRUE이므로 1을 출력한다.
SELECT (SYSTIMESTAMP = CAST(SYSDATETIME AS TIMESTAMP)); -- 명시적으로 타입을 변환하여 비교 연산을 수행한 결과, 1을 출력한다.
SELECT (SYSTIMESTAMP = SYSDATETIME); -- 묵시적으로 타입을 변환하여 비교 연산을 수행한 결과, 0을 출력한다.
SELECT (SYSTIMESTAMP <> NULL); -- NULL의 비교 연산을 수행하지 않고 NULL을 반환한다.
SELECT (SYSTIMESTAMP IS NOT NULL); -- NULL이 아니므로 1을 반환한다.