개발/데이터베이스
[ORACLE] NVL 함수, NVL2 함수
그린티소야
2021. 10. 12. 10:00
반응형
NVL 함수
▶ 사용방법
NVL(칼럼명, 값이 NULL인 경우 리턴할 값)
▶ 예시
NVL(JOB, '없음')
JOB이라는 컬럼이 NULL인 경우 '없음'이라는 값을 리턴해준다.
▶ 예시쿼리
아래의 쿼리는 EMP라는 테이블에 NAME, JOB이라는 칼럼이 있다는 가정하에 작성되었다.
SELECT NAME, JOB, NVL(JOB, '없음') FROM EMP;
▶ 예시 쿼리 결괏값
NAME | JOB | NVL(JOB, '없음') |
김자바 | 프로그래머 | 프로그래머 |
박씨 | 없음 | |
이파이썬 | 없음 | |
전디비 | DBA | DBA |
NVL2 함수
▶ 사용방법
NVL2(칼럼명, 값이 NULL이 아닌 경우 리턴할 값, 값이 NULL인 경우 리턴할 값)
▶ 예시
NVL2(JOB, '직업 있음', '없음')
JOB이라는 칼럼이 NULL이 아닌 경우에는 '직업 있음'을 리턴하고 NULL인 경우 '없음'이라는 값을 리턴해준다.
▶ 예시 쿼리
아래의 쿼리는 EMP라는 테이블에 NAME, JOB이라는 칼럼이 있다는 가정하에 작성되었다.
SELECT NAME, JOB, NVL2(JOB, '직업있음', '없음') FROM EMP;
▶ 예시 쿼리 결괏값
NAME | JOB | NVL2(JOB, '직업있음', '없음') |
김자바 | 프로그래머 | 직업있음 |
박씨 | 없음 | |
이파이썬 | 없음 | |
전디비 | DBA | 직업있음 |
NVL2 함수를 DECODE 함수로 바꾸기
NVL2 함수는 DECODE 함수를 이용해 같은 결괏값을 리턴할 수 있다.
위의 NVL2 함수를 DECODE함수로 바꾸면 아래와 같다.
DECODE(JOB, NULL, '없음', '직업 있음')
반응형