본문으로 바로가기

[Oracle] null이 아닌 값중 첫번째 찾기(COALESCE)

category DB\SQL 2019. 10. 18. 11:31

COALESCE는 인자중 순차적으로 NULL체크를하여 NULL이아닌 첫번째 값을 반환해 줍니다.

 


COALESCE( A, B, C, D, E... )


SELECT COALESCE(0,1,2) FROM DUAL;
//0

SELECT COALESCE(null,1,2) FROM DUAL;
//1

SELECT COALESCE(null,null,2) FROM DUAL;
//2

 

상황에 따라 DECODE 와 NVL로 표현하는거보다 쉽게 표현이 가능 합니다.

 

 

단, 파라미터로 들어온 인자의 데이터타입은 일치해야합니다.

SELECT COALESCE(null,1,'a') FROM DUAL;
//ORA-00932: 일관성 없는 데이터 유형: NUMBER이(가) 필요하지만 CHAR임

위처럼 비교되는 타입이 일치하지않으면 오류를 나타냅니다.