OracleDB

[오라클 SQL] Oracle NVL 함수 본문

Oracle/Oracle SQL

[오라클 SQL] Oracle NVL 함수

마포김선생 2023. 12. 7. 12:18

NULL 데이터를 다른 값으로 변경할 때 사용하는 함수

 

작업 환경:
OS: Oracle Linux 8.9
DB: Oracle 19c

 

NVL 함수 특징

- Oracle 버전 상관없이 NVL 함수 사용이 가능합니다.

- NULL 데이터를 내가 원하는 값으로 변경할 때 많이 사용하는 함수입니다.

- 사용 방법

    NVL(컬럼명,'원하는 특정 값')

 

 

Sample SQL

- 테스트를 위해 PRD_NM 컬럼 (울짬뽕) 데이터에 PRD_CD 값을 NULL로 만들었습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT
    PRD_NM,
    PRD_CD,
    AMT
FROM (
        SELECT '짜장면' AS "PRD_NM"'01' AS "PRD_CD"'10000' AS "AMT" FROM DUAL
        UNION ALL
        SELECT '울짬뽕', NULL'10000' FROM DUAL
        UNION ALL
        SELECT '탕수육''03''20000' FROM DUAL
     );
 
PRD_NM   PRD_CD AMT 
-------  -----  -----
짜장면     01     10000
울짬뽕     NULL   10000
탕수육     03     20000

 

 

 

NVL 함수 사용 방법

- NULL 데이터 '02' 변경

- 핵심 코드: NVL(PRD_CD, '02')

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT
    PRD_NM,
    NVL(PRD_CD, '02') AS "PRD_CD",
    AMT
FROM (
        SELECT '짜장면' AS "PRD_NM"'01' AS "PRD_CD"'10000' AS "AMT" FROM DUAL
        UNION ALL
        SELECT '울짬뽕'NULL'10000' FROM DUAL
        UNION ALL
        SELECT '탕수육''03''20000' FROM DUAL
     );
 
PRD_NM   PRD_CD AMT
-------  -----  -----
짜장면     01     10000
울짬뽕     02     10000
탕수육     03     20000

 

 

 

NVL 함수 응용 방법

- NULL 데이터 'X' 변경

- 핵심 코드: NVL(PRD_CD, 'X')

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT
    PRD_NM,
    NVL(PRD_CD, 'X') AS "PRD_CD",
    AMT
FROM (
        SELECT '짜장면' AS "PRD_NM"'01' AS "PRD_CD"'10000' AS "AMT" FROM DUAL
        UNION ALL
        SELECT '울짬뽕'NULL'10000' FROM DUAL
        UNION ALL
        SELECT '탕수육''03''20000' FROM DUAL
     );
PRD_NM   PRD_CD AMT
-------  -----  -----
짜장면     01     10000
울짬뽕     X      10000
탕수육     03     20000