티스토리 뷰

SQL

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

Aaron 2018. 12. 18. 22:43
반응형

NULL 값 치환하기 - NUL

 

NVL(조사할 컬럼, null일 경우 치환할 값)

 

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

 

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

 

 

 

응용해보면,

여기서 '보너스 없음' 은 문자형이므로 COMM 컬럼의 타입을 문자형으로 변환하지 않으면, 실행이 되지 않습니다.

그러므로 조사할 컬럼과 치환할 값의 데이터 형식을 맞춰주기위해 COMM 컬럼을 TO_CHAR 함수를 사용해서

문자로 만들어준거죠!

 

 

NULL 값 치환하기 - NUL2

 

 

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

 

 

이 함수는 NUL 함수와 다르게,

조사대상 컬럼(comm)과 null 인 경우 치환할 값(200)의 데이터 타입이 일치하지 않아도 되지만,

null 일 경우 치환 값(200)과, null 이 아닐 때 경우 치환 값(comm*1.1)의 데이터 타입이 같아야 합니다.

또, 반환 데이터 타입은 null 이 아닐 경우 치환할 값의 타입을 따른다는 것!

 

 

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

 

 

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

 

 

 

보너스가 있는 직원은 10% 인상, 없는 직원은 'no'.. 너무하네염ㅋㅋㅋ

만일 COMM*1.1 에 TO_CHAR 함수를 사용하지 않았다면, 실행이 제대로 안 되겠죠? 왜냐!

null 이 아닐 경우, null 일 경우의 데이터 타입은 같아야하기 때문입니다.

 






참고: KIC 캠퍼스 머신러닝기반의 빅데이터분석 양성과정

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday