쿼리를 사용할 때 데이터를 가지고 계산하는 경우가 있다.
이때 값에 null이 들어갈 때를 주의해야 한다.
ex 1) 0 + 1 + 2
ex 2) null + 1 + 2
ex 1에 해당하는 답은 당연히 3이다.
문제는 ex 2의 경우에서 발생한다.
해당 계산식의 값은 null이다.
이렇게 되어 버리면 정확한 답을 구할 수 없게 된다.
이를 해결하기 위해서는 정확한 null 처리가 필요하다.
나의 경우 기존 식은 이랬다.
NVL((SUM(SUM)/SUM(CNT)), 0)
만약 테이블에 존재하는 SUM이나 CNT 값 중에 하나라도 null이 있다면 값은 무조건 0이 나올 것이다.
그래서 이렇게 수정했다.
NVL((SUM(NVL(SUM, 0))/SUM(NVL(CNT, 0))), 0)
이렇게 쿼리를 수정하면 SUM이나 CNT 값에 null이 있더라도 0으로 치환되고 원하는 데이터를 얻을 수 있다.
728x90
'DBMS' 카테고리의 다른 글
| 쿼리 작성 시 유의점 (0) | 2023.12.11 |
|---|---|
| SQL SELECT 결과 유사 IF문 (0) | 2023.08.24 |
| SELECT문 결과 각 COLUMN 더해서 ROW에 추가 (0) | 2023.08.24 |
| 국비 수업 18일 차(22.10.27.) - join 예제 (0) | 2022.10.28 |
| 국비 수업 18일 차(22.10.27.) - join (0) | 2022.10.28 |