728x90
ORACLE의 NULL 관련 다양한 함수들을 알아보자! 🙋♂️
NVL
NVL함수는 NULL 값을 다른 값으로 바꿀 때 사용 가능하며, 모든 데이터 타입에 적용 가능하다.
SELECT DEPT_CODE
, NVL(MGR_EMP_NO, 0) AS MGR_EMP_NO
FROM DEPT
DEPT_CODE MGR_EMP_NO
--------- ----------
110 230606011
120 0
130 220504092
NVL2
NVL2 함수는 NVL 함수와 DECODE 함수의 개념을 합쳤다고 볼 수 있다.
VNL2(EXP, EXP1, EXP2) 형식으로 사용 가능하고 EXP의 값이 NULL이 아닌 경우 EXP1 반환하고, NULL인 경우 EXP2 를 반환한다.
SELECT DEPT_CODE
, NVL2(MGR_EMP_NO, 1, 0) AS MGR_EMP_NO
FROM DEPT
DEPT_CODE MGR_EMP_NO
--------- ----------
110 1
120 0
130 1
NULLIF
NULLIF(EXP1, EXP2) 형식으로 사용 가능하고 EXP1, EXP2 값이 동일하면 NULL을 동일하지 않으면 EXP1 반환한다.
SELECT DEPT_CODE
, NULLIF(DEPT_CODE, 110) AS EXP
FROM DEPT
DEPT_CODE EXP
--------- ----------
110 NULL
120 120
130 130
COALESCE
COALESCE(EXP1, EXP2, EXP3, ...) 형식으로 사용 가능하고 EXP1값이 NULL이 아니면 EXP1 값을 아니면 EXP2를 반환 EXP2 값이 NULL이면 EXP3를 반환하는 식으로 동작한다.
SELECT DEPT_CODE
, COALESCE(MGR_EMP_NO, 0) AS MGR_EMP_NO
FROM DEPT
DEPT_CODE MGR_EMP_NO
--------- ----------
110 230606011
120 0
130 220504092
728x90
'💾DB' 카테고리의 다른 글
[ORACLE] MERGE INTO (0) | 2023.07.13 |
---|---|
[ORACLE] GROUP BY ROLLUP (0) | 2023.06.20 |
[ORACLE] DECODE와 CASE (0) | 2023.06.19 |
[ORACLE] INDEX 타지 않는 경우 (feat. INDEX HINT) (0) | 2022.09.15 |
[PostgreSQL] LAG, LEAD 사용하기 (0) | 2022.07.08 |