NVL이란,
SELECT한 값의 결과가 NULL인 경우 대체 값을 지정해 주는 것이다.
그럼 NVL과 NVL2의 차이점은 무엇일까
1. NVL은 NVL(컬럼, 컬럼이 NULL일 때 대체 값)
SELECT COLUMN1
, COLUMN2
, NVL(COLUMN3, COLUMN4) AS COLUMN5
FROM TABLE
위 코드는 COLUMN3이 NULL 값인 경우 COLUMN4를 대체로 하면 되고,
COLUMN3이 NULL이 아닌 경우 그대로 COLUMN3을 사용 할 수 있게 된다.
2. NVL2는 NVL2(컬럼, 컬럼이 NULL이 아닐 때 값, 컬럼이 NULL일 때 값)
SELECT COLUMN1
, COLUMN2
, NVL(COLUMN3, COLUMN4, COLUMN5) AS COLUMN6
FROM TABLE
위 코드는 COLUMN3이 NULL이 아니면 COLUMN4로 대체,
COLUMN3이 NULL이면 COLUMN5로 대체하여 사용 할 수 있게된다.
기존 데이터가 NULL인 경우가 생각보다 많기도 하고,
예를들어 TABLE_A와 TABLE_B의 두 테이블의 데이터를 같이 사용해야 하는 경우도 은근 많아서
NVL은 자주 사용하고 있다.
[Oracle] 자기 테이블의 컬럼으로 UPDATE 하는 방법 (0) | 2022.10.14 |
---|---|
[Oracle] 여러 Row 값을 ,(콤마)로 나열하기 (0) | 2022.09.19 |
[Oracle] UNION, UNION ALL 차이점 (0) | 2022.08.29 |
[Oracle] "ORA-01839 지정된 월에 대한 날짜가 부적합합니다." 에러 해결 방법 (0) | 2022.08.26 |
[Oracle] 그리드에서 바로 수정 할 수 있는 방법 ROWID (0) | 2022.08.24 |