[Oracle] 오라클 NULL값 치환하는 법, 오라클 NVL, NVL2 함수 사용법

NVL함수

NVL함수를 사용하면 값이 NULL인 경우 지정된 값을 출력하도록 설정할 수 있다.

 

SELECT NVL("값", "지정값")
FROM DUAL;

 

기본적인 사용법은 위와 같다.  "값"이 NULL이라면 "지정값"을 출력하고, 그렇지 않다면 기존 값을 그대로 출력한다.

 

SELECT NVL(NAME, "홍길동")
FROM TB_STUDENT;

 

예를 들어 TB_STUDENT라는 테이블에서 학생들의 이름(NAME)을 출력한다고 하자.

만약 이름이 NULL이라면 "홍길동"이라는 값이 출력된다.

 

 

NVL2 함수

NVL2 함수는 값이 NULL이 아닌 경우에는 지정값1을 출력하고, NULL이라면 지정값2를 출력하도록 한다.

 

SELECT NVL("값", "지정값1", "지정값2")
FROM DUAL;

 

기본적인 사용법은 위와 같다. 만약 "값"이 NULL이라면 "지정값2"를 출력하고, NULL이 아니라면 "지정값1"을 출력한다.

 

SELECT NVL2(JOB, "직장인", "백수")
FROM TB_HUMAN;

 

예를 들어 TB_HUMAN이라는 테이블에서 JOB 컬럼 값이 있다면 "직장인"으로 출력하고, NULL이라면 "백수"로 출력하도록 할 수 있다.

 

 

NVL 응용

NVL("값", 0) -- "값"이 NULL이라면 0으로 치환
NVL("값", '') -- "값"이 NULL이라면 공백으로 치환
NVL("값", SYSDATE) -- "값"이 NULL이라면 현재 날짜로 치환

 

NVL 함수는 위와 같이 응용 할 수도 있다.

 

하지만 NVL 함수는 사용에 주의를 둬야 한다. NVL 함수는 오직 ORACLE에서만 지원하기 때문이다.

따라서 추후 MYSQL 등 다른 데이터베이스 시스템을 염두에 둔다면 다른 함수를 고려해봐야 한다.

 

반응형

댓글

Designed by JB FACTORY