728x90
- target: NVL / NVL2 / DECODE 사용법 (null, 공백, 치환)
- method:
1. NVL
NVL("값", "지정값") : 값이 NULL인 경우, 지정값으로 치환
SELECT EMPNO
, ENAME
, COMM
, NVL(COMM, 0) AS COMM2
FROM EMP
/*
EMPNO | ENAME | COMM | COMM2
7839 | KING | | 0
7654 | MARTIN | 1400 | 1400
*/
2. NVL2
NVL2("값", "지정값1", "지정값2") = NVL2("값", "NOT NULL", "NULL")
SELECT EMPNO
, ENAME
, COMM
, NVL2(COMM, 'Y', 'N') AS COMM2
FROM EMP
/*
EMPNO | ENAME | COMM | COMM2
7839 | KING | | N
7654 | MARTIN | 1400 | Y
*/
3. DECODE
DECODE("값", "조건", "지정값1", "지정값2")
= DECODE("값", NULL, "지정값2", "지정값1")
= NVL2("값", "지정값1", "지정값2")
SELECT EMPNO
, ENAME
, COMM
, NVL2(COMM, 'Y', 'N') AS COMM2
, DECODE(COMM, NULL, 'N', 'Y') AS COMM3
FROM EMP
/*
EMPNO | ENAME | COMM | COMM2 | COMM3
7839 | KING | | N | N
7654 | MARTIN | 1400 | Y | Y
*/
※ NVL2는 NOT NULL이 기본 조건이라고 보면 됨 (값이 NOT NULL인 경우 첫번째 인자, NULL인 경우 두번째 인자)
※ DECODE는 조건이 참인 경우, 첫번째 인자, 아니면 두번째 인자
- source:
[Oracle] 오라클 NVL, NVL2 함수 사용방법 (null, 공백, 치환)
오라클 NVL, NVL2 함수 사용법 해당 칼럼의 값이 NULL 값인 경우 특정값으로 출력하고 싶으면 NVL 함수를 사용하고, NULL 값이 아닐 경우 특정값으로 출력하고 싶으면 NVL2 함수를 사용하면 된다. NVL 함
gent.tistory.com
728x90
'Dev > DBMS' 카테고리의 다른 글
[Oracle] 오라클 RANK, DENSE_RANK 순위 함수 (0) | 2023.10.31 |
---|---|
[Oracle] Oracle 데이터를 Json 형태 문자열로 변환 [오라클 11g 이하] (0) | 2023.10.30 |
[Oracle] Oracle 데이터를 Json 형태로 변환 [오라클 12c 이상] (0) | 2023.10.30 |
[PostgreSQL] 쿼리 실행 통계 확인을 위한 pg_stat_monitor (0) | 2023.01.10 |
[PostgreSQL] Slow Query를 감지하기 위한 3가지 방법 (0) | 2023.01.10 |