비교 연산자

설명

비교 연산자(comparison operator)는 왼쪽 피연산자와 오른쪽 피연산자를 비교하여 TRUE(1) 또는 FALSE(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을 반환한다.