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 함수 사용법에 대해서 알아보았습니다.
반응형
그리드형
'IT > ORACLE' 카테고리의 다른 글
[ORACLE] 오라클 클라이언트 완전 삭제방법(regedit) (0) | 2021.06.03 |
---|---|
[ORACLE] [WITH GRANT OPTION] VS [WITH ADMIN OPTION] 차이 (0) | 2021.05.28 |
[ORACLE] Number 타입 형태 표 ( Number(2,5),Number(5,2) ) (1) | 2021.05.25 |
[ORACLE] CROSS JOIN 사용법 & 예제 (0) | 2021.05.24 |
[ORACLE] 오라클 INSERT ALL, INSERT FIRST 사용법 & 예제 (0) | 2021.05.20 |
댓글