[SQL] NULL + 숫자 = NULL? COALESCE로 해결하세요

Unit·2025년 7월 31일

SQL

목록 보기
31/59

숫자 계산을 했는데, 예상과 다르게 결과가 NULL로 나온 적이 있진 않으셨나요?
예를 들어, 아래처럼 단순 합산을 했을 때 :

SELECT order_id
     , price + delivery_fee AS final_payment
FROM orders;

숫자 + 숫자인데 결과가 NULL이라면?
👉🏻 그 중 하나라도 NULL이기 때문입니다.


❗ NULL이 껴 있으면, 계산 결과도 NULL

SQL에서는 아래처럼 동작합니다 :

  • NULL + 숫자 = NULL
  • 숫자 - NULL = NULL
  • NULL * 숫자 = NULL

즉, 하나라도 NULL이면 전체 계산이 무력화됩니다.


✅ 해결 방법 : COALESCE로 기본값을 설정하세요

SELECT order_id
     , COALESCE(price, 0) + COALESCE(delivery_fee, 0) AS final_payment
FROM orders;

COALESCE(A, B)는 A가 NULL이면 B를 반환합니다.
NULL 대신 0을 넣어 계산 오류를 방지할 수 있어요.


🧠 참고 : COALESCE는 여러 입력도 가능해요

COALESCE(a, b, c, 0)

→ 순서대로 확인해서, NULL이 아닌 첫 번째 값을 반환합니다.


정리

✔ 계산에 들어가는 값은 항상 NULL 여부를 체크하세요.
COALESCE를 쓰면, NULL로 인한 오류를 방지할 수 있습니다.

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

0개의 댓글