비교 연산자

설명

비교 연산자(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

예제

EVALUATE (1 <> 0); -- TRUE이므로 1을 출력한다.

EVALUATE (1 != 0); -- TRUE이므로 1을 출력한다.

EVALUATE (0.01 = '0.01'); -- 숫자 타입과 문자열 타입을 비교했으므로 에러가 발생한다.

EVALUATE (1 = NULL); -- NULL을 출력한다.

EVALUATE (1 <=> NULL); -- FALSE이므로 0을 출력한다.

EVALUATE (1.000 = 1); -- TRUE이므로 1을 출력한다.

EVALUATE ('cubrid' = 'CUBRID'); -- 대소문자를 구분하므로 0을 출력한다.

EVALUATE ('cubrid' = 'cubrid'); -- TRUE이므로 1을 출력한다.

EVALUATE (SYSTIMESTAMP = CAST(SYSDATETIME AS TIMESTAMP)); -- 명시적으로 타입을 변환하여 비교 연산을 수행한 결과, 1을 출력한다.

EVALUATE (SYSTIMESTAMP = SYSDATETIME)); -- 묵시적으로 타입을 변환하여 비교 연산을 수행한 결과, 0을 출력한다.

EVALUATE (SYSTIMESTAMP <> NULL); -- NULL의 비교 연산을 수행하지 않고 NULL을 반환한다.

EVALUATE (SYSTIMESTAMP IS NOT NULL); -- NULL이 아니므로 1을 반환한다.