반응형
ORACLE 에서는 값이 NULL일때 특정 값으로 치환할 수 있도록 도와주는 함수가 존재하는데 NVL 과 NVL2이다.
이는 오직 ORACLE에서만 제공해주는 함수이기 때문에 다른곳에서는 사용하지 않는다.
NVL 과 NVL2에 대해 알아보자.
NVL
- NVL([컬럼], [치환할 값])
- 해당 컬럼이 NULL일 경우 치환할 값으로 변환시켜 준다.
- 타입으로는 숫자, 문자, 날짜 모두 가능하다.
-- comm 컬럼이 null일 경우 0으로 치환한다.
SELECT salary, NVL(comm, 0) FROM emp;
NVL2
- NVL2([컬럼], [NULL이 아닐경우], [NULL일 경우])
- NVL과 달리 매개변수가 하나 더 있는데 이는 컬럼이 NULL이 아닐때 역시 값을 정해둬 사용할 수 있다.
-- NULL 일경우 'NULL값이구나' , 값이 있을경우 '값이 있구나' 반환
SELECT salary, NVL2(comm, '값이 있구나', 'NULL 값이구나') FROM emp;
둘다 사용방법이 간단하여 그렇게 어렵지는 않으나 용도에 맞게 사용해주면 될 것 같다.
추가로 COALESCE 함수가 존재하는데,
이 함수는 오라클뿐만 아니라 다른 데이터베이스에서도 사용이 가능하니 알아두면 좋다.
반응형
댓글