[SQL] NULLIF로 0 나누기 에러 막기

Unit·2025년 9월 30일

SQL

목록 보기
37/59

평균이나 비율을 계산하다 보면, 분모가 0인 경우가 종종 발생합니다.
이때 단순히 나눗셈을 하면 SQL은 에러를 발생시킵니다.


❓ NULLIF 함수 개념

NULLIF(expr1, expr2)

  • 두 값이 같으면 NULL 반환

  • 다르면 expr1 반환

즉, NULLIF(order_count, 0)은 order_count가 0일 때 NULL을 반환합니다.
이를 분모에 사용하면 0으로 나누기 에러를 방지할 수 있습니다.


📄 예시 데이터

user_idtotal_amountorder_count
110005
25000
312003

🖥️ SQL 예제

SELECT  user_id
     ,  total_amount / NULLIF(order_count, 0) AS avg_amount
FROM    orders;

👁️ 쿼리 결과

user_idavg_amount
1200
2NULL
3400

2번 유저는 order_count = 0이지만, 에러 대신 NULL 처리됩니다.


정리

NULLIF로 “0으로 나누기” 에러를 간단히 차단할 수 있습니다.

profile
협업, 유지보수, 최적화를 고려한 데이터 실무 팁을 정리합니다.

0개의 댓글