본문 바로가기
Be Smart/SQL

[SQL] NULL 값 치환하기 - NVL, NVL2

by 반월하 2021. 10. 20.
728x90

NULL 값 치환하기 - NVL

NVL(조사할 칼람, null일 경우 치환할 값)

먼저, 주의할 점은 조사할 칼럼(COMM)과 치환할 값(0)의 데이터 타입이 같아야 한다는 것입니다.

적용해보면, 기존 NULL 값이 0으로 치환된 것을 볼 수 있습니다.

응용해보면,
여기서 '보너스 없음' 은 문자형이므로 COMM 컬럼의 타입을 문자형으로 변환하지 않으면, 실행이 되지 않습니다.
그러므로 조사할 컬럼과 치환할 데이터 형식을 맞추기 위해 COMM 컬럼을 TO_CHAR 함수를 사용해서 문자로 만들어준거죠!

NULL 값 치환하기 - NVL2

NVL2(조사 대상 칼럼, null이 아닐 경우 치환할 값, null 일 경우 치환할 값)

이 함수는 NVL 함수와 다르게, 
조사대상 칼럼(COMM)과 null 인 경우 치환할 값(200)의 데이터 타입이 일치하지 않아도 되지만,
null 일 경우 치환 값(200)과, null이 아닌 경우 치환 값(COMM*1.1)의 데이터 타입이 같아야 합니다.
또, 반환 데이터 타입은 null 이 아닐 경우 치환할 값의 타입을 따른다는 것!

보너스가 있는 직원은 기존 보너스의 10% 인상, 보너스가 없는 직원은 200 적용

보너스가 있는 직원은 'yes' 없는 직원은 'no'

 

728x90

댓글