본문 바로가기
DBMS/ORACLE

[ORACLE] 오라클_NULL 값 일때 치환 및 처리 (COALESCE)

by 썸머워즈 2019. 8. 4.
반응형

COALESCE

- COALESCE(case1, case2, case3, ..., caseN)

- COALESCE 함수는 나열된 값을 순차적으로 체크하여 NULL이 아닌 값이 나오는 인수를 반환한다.

- 이 함수는 ANSI 표준 함수로 오라클뿐만 아니라 다른 DB언어에서도 사용이 가능하며 오라클에서의 NVL과 비슷한 기능으로 작동한다.


COALESCE 함수에 대해 간략하게 알아봤으니 예제를 통해 접해보자.

우선 아래와 같은 데이터가 있다는 가정하에 진행해보자.

 

▷ 초기 데이터

deptno salary
10  
20 0
30 10000
40  

 

▷ 쿼리문

SELECT deptno, salary, 
	COALESCE( salary * 0.9 , -1) AS realSalary
FROM dept;

 

▷ 결과

deptno salary realSalary
10   -1
20 0 0
30 10000 9000
40   -1

위 예제 쿼리문을 보면 COALESCE 안의 case 순서대로

salary * 0.9가 null 값일 경우에 -1을 입력하도록 선언해 놓은것이다.

 

COALESCE를 사용하기에 앞서 주의할 점이 하나 있는데,

COALESCE 함수 안에서 사용되는 값들의 타입이 전부 동일해야 한다는 점이다.

 

만약 COALESCE(salary * 0.9, 'none')

이런식으로 사용할 경우 아래와 같은 에러 메시지를 마주하게 된다.

 


본문 처음에서 설명했던 NVL에 대해서도 알아두자.

https://mine-it-record.tistory.com/64

 

[ORACLE] 오라클_NULL 값 일때 치환,처리 (ft. NVL , NVL2)

ORACLE 에서는 값이 NULL일때 특정 값으로 치환할 수 있도록 도와주는 함수가 존재하는데 NVL 과 NVL2이다. 이는 오직 ORACLE에서만 제공해주는 함수이기 때문에 다른곳에서는 사용하지 않는다. NVL 과 N

mine-it-record.tistory.com

 

반응형


댓글

TOP