▣ Oracle Null값 변환/치환 NVL, NVL2 함수 사용 법
이번엔 Null값을 다른 값으로 치환할 수 있는 NVL/NVL2 함수에 대해서 알아 보겠습니다.
NVL/NVL2 함수는 특정 값이 Null일 경우, 다른 값으로 변환을 해주는 함수로 사용법은 아래와 같습니다.
먼저 NVL 함수의 사용 법 먼저 알아 보겠습니다.
→ NVL(Value, ChangeValue)
Value값이 Null인 경우, ChangeValue로 변환 해줍니다.
예를 들면..
SELECT NVL(NULL, 'NULL입니다') FROM DUAL → 'NULL입니다'
SELECT NVL('A', 'NULL입니다') FROM DUAL → 'A'
이렇게 출력이 됩니다.
다음으로 NVL2 함수의 사용 법을 알아 보겠습니다.
→ NVL2(Value, ChangeValue1, ChangeValue2)
Value값이 Null이 아닌 경우, ChangeValue1로 변환 Null인 경우는 ChangeValue2로 변환 해줍니다.
이것도 예를 들어 보면.. 아래와 같이 출력이 됩니다.
SELECT NVL2(NULL, 'NULL이 아닙니다', 'NULL입니다') FROM DUAL → 'NULL입니다'
SELECT NVL2('A', 'NULL이 아닙니다', 'NULL입니다') FROM DUAL → 'NULL이 아닙니다'
실제로는 아래와 같이 사용할 수 있습니다.
SELECT NVL(D.EMP_CNT, 'NON_USE') FROM DEPT D;
SELECT NVL2(D.EMP_CNT, 'USE', 'NON_USE') FROM DEPT D;
위의 쿼리는 부서 테이블에 부서원 Count가 Null이면 NON_USE(사용하지 않음)으로 출력하는 것이고,
아래 쿼리는 부서 테이블에 부서원 Count가 Null이면 NON_USE(사용하지 않음)으로 출력 하지만 만약 Count가 있다면 Count를 출력 하지 않고 USE(사용) 으로 출력 해줍니다.
이상 NVL과 NVL2 함수에 대해 알아 봤습니다.
'데이터베이스 > Oracle' 카테고리의 다른 글
[Oracle] 오라클 시퀀스(Sequence) 생성 수정 삭제하기 (0) | 2015.08.10 |
---|---|
[Oracle] 오라클 에러 ORA-00904: invalid identifier / 부적합한 식별자 (0) | 2015.07.23 |
[Oracle] 오라클 테이블 컬럼 추가/수정/삭제/이름변경 하기(ALTER table ADD/MODIFY/DROP/RENAME) (0) | 2015.07.06 |
[Oracle] 오라클 Decode 함수 사용 법 (0) | 2015.06.30 |
[Oracle 에러] ORA-30036: unable to extend segment by 8 in undo tablespace (0) | 2015.06.29 |