본문 바로가기
IT/ORACLE

[ORACLE] 오라클 COALESCE (NULL이면 다음값 찾기) 사용법 & 예제

by 베베야 2021. 5. 26.
728x90

COALESCE 함수는 널이 아닌 첫 번째 EXPR을 반환합니다. 
쉽게말해 NVL함수의 기능을 확장한 함수입니다.

들어온 값 중에서 NULL값이 아닌 첫 번째 값을 반환합니다.
주의할 점은 NULL 값이 들어온다면 NULL을 반환합니다.
COALESCE(EXPR, EXPR2, ...)

 

COALESCE 함수 사용법

--테이블 생성
CREATE TABLE T_COALESCE
(
C1 varchar(10)
,C2 varchar(10)
,C3 varchar(10)
);

--데이터 삽입
INSERT INTO T_COALESCE VALUES ('A','B','C');
INSERT INTO T_COALESCE VALUES (NULL,'B','C');
INSERT INTO T_COALESCE VALUES (NULL,NULL,'C');
INSERT INTO T_COALESCE VALUES (NULL,NULL,NULL);
COMMIT;

--데이터 조회
SELECT * FROM T_COALESCE

 

예제1

C1이 null 이면 C2를
C2도 null 이면 C3를
C3도 null 이면 0값을 반환합니다.

SELECT C1,C2,C3, COALESCE (C1, C2,C3,'0') AS R1 
FROM T_COALESCE;
-----------------------------------------------
C1 C2 C3 R1 
A  B  C  A  -- C1이 null 이 아니기 때문에 A 반환
   B  C  B  -- C1이 NULL 이기 때문에 C2값인 B를 반환
      C  C  -- C1이 NULL 이기 떄문에 C2를 찾았지만 C2도 NULL 이기 때문에 C3값인 C를 반환
         0  -- C1,C2,C3 모두 NULL 이기 때문에 마지막값인 0을 반환

 

예제2

C1이 null 이면 NULL를
NULL이 NULL이면 0을 반환

SELECT C1,C2,C3, COALESCE (C1, NULL,'0') AS R1 
FROM T_COALESCE;
-----------------------------------------------
C1 C2 C3 R1
A  B  C  A  -- C1이 null 이 아니기 때문에 A 반환
   B  C  0  -- C1이 null 이기 때문에 2번째 비교값인 NULL로이동 -> NULL이기 때문에 세번째 값인 0을 반환  
      C  0  -- C1이 null 이기 때문에 2번째 비교값인 NULL로이동 -> NULL이기 때문에 세번째 값인 0을 반환  
         0  -- C1이 null 이기 때문에 2번째 비교값인 NULL로이동 -> NULL이기 때문에 세번째 값인 0을 반환 

 

이상으로 오라클  COALESCE 함수 사용법에 대해서 알아보았습니다.

반응형
그리드형

댓글