본문 바로가기

개발/데이터베이스

[ORACLE] NVL 함수, NVL2 함수

반응형

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, '없음', '직업 있음')




반응형