COALESCE 함수

설명

COALESCE 함수는 하나 이상의 연산식 리스트가 인자로 지정되며, 첫 번째 인자가 NULL이 아닌 값이면 해당 값을 결과로 반환하고, NULL이면 두 번째 인자를 반환한다. 만약 인자로 지정된 모든 연산식이 NULL이면 NULL을 결과로 반환한다. 이러한 COALESCE 함수는 주로 NULL 값을 다른 기본값으로 대체할 때 사용한다.

COALESCE 함수는 인자의 타입 중 우선순위가 가장 높은 타입으로 모든 인자를 변환하여 연산을 수행한다. 인자 중에 같은 타입으로 변환할 수 없는 타입의 인자가 있으면 모든 인자를 VARCHAR 타입으로 변환한다. 아래는 입력 인자의 타입에 따른 변환 우선순위를 나타낸 것이다.

예를 들어 a의 타입이 INT, b의 타입이 BIGINT, c의 타입이 SHORT, d의 타입이 FLOAT이면 COALESCE(a, b, c, d)는 FLOAT 타입을 반환한다. 만약 a의 타입이 INTEGER, b의 타입이 DOUBLE, c의 타입이 FLOAT, d의 타입이 TIMESTAMP이면 COALESCE(a, b, c, d)는 VARCHAR 타입을 반환한다.

구문

COALESCE(expression [, ...])

 

result :

expression | NULL

COALESCE(a, b)는 다음의 CASE 문장과 같은 의미를 가진다.

CASE WHEN a IS NOT NULL

THEN a

ELSE b

END

예제

SELECT * FROM case_tbl;

            a

=============

            1

            2

            3

         NULL

 

--substituting a default value 10.0000 for NULL valuse

SELECT a, COALESCE(a, 10.0000) FROM case_tbl;

            a  coalesce(a, 10.0000)

===================================

            1  1.0000

            2  2.0000

            3  3.0000

         NULL  10.0000