NVL = 해당 칼럼의 값이 NULL 값인 경우 특정 값으로 출력
NVL2 = 해당 칼럼의 값이 NULL 값인 아닌 경우 특정 값으로 출력
COALESCE = NULL이 아닌 첫 번째 칼럼의 값을 반환 할때 사용
실습 환경
Windows 10
Oracle 11g Express Edition Release 11
Oracle SQL Developer
Database ( hr ) - hr 테이블은 오라클에서 지원하는 테이블입니다.
NVL을 사용한 예제 1
select commission_pct from employees;
데이터를 확인해보면 NULL 값이 들어있는 데이터를 확인 할 수 있다.
SELECT commission_pct , NVL(commission_pct,'999') FROM employees;
NVL 함수는 값이 NULL 이면 지정값 출력 / NULL이 아니면 원래 값을 출력함.
함수 - NVL("값","지정값")
결과 값을 자세하게 보면 null 값들은 999로 출력 된다
null이 아닌 데이터가 있는 부분은 그대로 출력되는걸 확인 할 수 있다.
NVL2을 사용한 예제 1
select commission_pct from employees;
데이터를 확인해보면 NULL 값이 들어있는 데이터를 확인 할 수 있다.
SELECT commission_pct , NVL2(commission_pct,'000','999') FROM employees;
NVL2 함수는 값이 NULL 이면 지정값2 출력 / NULL이 아니면 지정값1 출력
함수 - NVL2("값","지정값1","지정값2")
결과 값을 자세하게 보면 null 값들은 999로 출력 된다
null이 아닌 데이터가 있는 부분은 000으로 출력 된다.
SELECT commission_pct , NVL2(commission_pct,commission_pct,'1111111') FROM employees;
위 코드처럼 NVL2함수에서 NULL이 아닌경우 자신의 값을 그대로 출력할 수 있다.
결과 값처럼 NULL이 아닌 경우 자신의 값을 출력하는걸 볼 수 있다.
중요한 사실은 오라클 데이터베이스에만 존재하는 함수이다
COALESCE을 사용한 예제
SELECT COALESCE('971221' , '681005', null) AS FR,
COALESCE(null , '721011' , '840321') AS FT,
COALESCE(null , null , '610321') AS FA,
COALESCE(null , '990624' , null) AS FH,
COALESCE('910524' , null , null) AS FV,
COALESCE(null , null , null , null) AS FV
FROM DUAL;
데이터 출력 결과를 보면 NULL값 기준을 제외한 데이터에서 첫번째 데이터가 출력된다.
모두 NULL은 NULL이다. NVL과 같다.
COALESCE는 NVL과 같이 사용이 가능하다,
'DATABASE > ORACLE' 카테고리의 다른 글
Oracle - SUBSTR , SUBSTRB (0) | 2022.03.17 |
---|---|
Oracle - Decode (0) | 2022.03.15 |
Oralce - TO_CHAR () (0) | 2022.03.14 |
Oralce - HAVING (0) | 2022.03.14 |
Oralce - GROUP BY(그룹) (0) | 2022.03.14 |