티스토리 뷰
반응형
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 캠퍼스 머신러닝기반의 빅데이터분석 양성과정
반응형
'SQL' 카테고리의 다른 글
[SQL] 그룹 함수(카운트, 합, 평균, 최대, 최소) - COUNT, SUM, AVG, MAX, MIN (0) | 2018.12.19 |
---|---|
[SQL] 조건문 - DECODE, CASE~WHEN~THEN (0) | 2018.12.19 |
[SQL] 문자형을 숫자형으로 변환하기 - TO_NUMBER (0) | 2018.12.18 |
[SQL] 숫자형을 문자형으로 변환하기(+문자열을 날짜타입으로) - TO_CHAR + TO_DATE (0) | 2018.12.18 |
[SQL] 날짜 함수(2) - NEXT_DAY, LAST_DAY, ROUND, TRUNC (0) | 2018.12.18 |
댓글