숫자 계산을 했는데, 예상과 다르게 결과가 NULL로 나온 적이 있진 않으셨나요?
예를 들어, 아래처럼 단순 합산을 했을 때 :
SELECT order_id
, price + delivery_fee AS final_payment
FROM orders;
숫자 + 숫자인데 결과가 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로 인한 오류를 방지할 수 있습니다.