참고
2020-08-17-03)NULL처리함수.sql
2020-08-18-01).sql
1. NVL(col, val)
- 주어진 자료가 NULL인지 판별하여 NULL인 경우 다른 값을 반환
- 'col'의 값 = NULL -> 'val'값을 반환
- 'col'의 값 ≠ NULL -> 'col'값을 반환
- 'col'과 'val'은 같은 타입이어야 함
예시
1. 상품테이블(PROD)에서 PROD_COLOR이 NULL이면 '색상정보 없음'을, NULL이 아니면 색상을 출력하시오
- Alias: 상품명, 분류코드, 색상정보
2. 장바구니 테이블에서 모든 회원별 구매 현황을 조회하시오
- Alias: 회원번호, 회원명, 구매금액
- ~별: GROUP BY
2. NVL2(c1, r1, r2)
- 주어진 자료가 NULL인지 판별하여 NULL인 경우 다른 값을 반환
- 'c'의 값 = NULL -> 'r2'값을 반환
- 'c'의 값 ≠ NULL -> 'r1'값을 반환
- r1, r2가 같은 데이터타입이어야 함.
- NVL과 NVL2비교
- NVL(c,NULL) = NVL2(c,c,NULL);
예시
1-1. 회원테이블에서 회원의 성씨가 '이'씨인 회원들의 마일리지를 NULL로 바꾸시오.
- 결과값:
1-2. 회원테이블에서 회원의 마일리지가 NULL인 회원과 NULL이 아닌 회원을 판별하여 NULL인 회원은 비고란에 '휴면회원'을, NULL이 아닌 회원은 '활동회원'을 출력하시오
- Alias: 회원명, 마일리지, 비고
- sort: 회원명순
- 오류:
- 이유: r1,r2 타입이 일치하지 않기때문.
2. 사원테이블에서 COMMISION_PCT를 조사하여 NULL이면 영업실적란에 0을, NULL이 아니면 %로 환산된 영업실적을 출력하여라
- 단, NVL2를 사용할 것
- Alias: 사원명, 부서코드, 직책코드, 영업실적
- Sort: 영업실적이 많은 사원부터