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
'Be Smart > SQL' 카테고리의 다른 글
[SQLD] (3) SQL기본 (0) | 2021.10.26 |
---|---|
[SQLD] (2) 데이터 모델과 성능 (0) | 2021.10.25 |
[ORACLE] INDEX HINT (인덱스 힌트, 주석달기, 성능 튜닝) (0) | 2021.10.20 |
[ORACLE] INDEX 관리 및 유지 보수 (0) | 2021.10.20 |
[ORACLE] INDEX 기본 구조와 사용 (0) | 2021.10.20 |
댓글