SQL COALESCE in Postgres: A Simple Guide

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

PostgreSQL 개발자 및 SQL 초보자

  • 난이도: 중급 이하 (NULL 처리 및 단순 조건 판단에 초점)

핵심 요약

  • COALESCE 함수는 NULL 값을 첫 번째 비-null 값으로 대체하는 간결한 방법 제공
  • CASE 문 대비 더 짧고 가독성이 높은 쿼리 작성 가능
  • 다중 컬럼(clearance_price, discount_price, regular_price)에 대한 NULL 처리 시 유연한 적용 가능

섹션별 세부 요약

1. `NULL` 값의 문제점

  • NULL은 데이터가 존재하지 않는 상태를 나타내며, 사용자에게 직접 노출시 혼란 유발
  • 예시: discount_priceNULL인 제품의 경우 regular_price가 대체되어야 함

2. `CASE` 문 사용 예시

  • CASE 문으로 조건을 직접 작성하여 NULL 대체
  • 코드 예시:
  • CASE
      WHEN discount_price IS NOT NULL THEN discount_price
      ELSE regular_price
    END AS final_price
  • 단점: 조건이 복잡할수록 코드 길이 증가

3. `COALESCE` 함수 사용 예시

  • COALESCE(discount_price, regular_price)NULL 대체
  • 코드 간결성과 가독성 향상
  • 결과:
  • product_name | final_price
    ---|---
    Jeans | 50.00
    Socks | 8.00

4. 다중 컬럼 적용 예시

  • clearance_price 추가 후 COALESCE(clearance_price, discount_price, regular_price) 사용
  • 순차적으로 NULL이 아닌 첫 번째 값 반환

결론

  • COALESCENULL 처리에 최적화된 간단한 함수로, CASE 문보다 코드 효율성이 높음
  • 다중 컬럼 처리 시 COALESCE를 사용하여 복잡한 조건을 간결하게 표현 가능
  • 실무에서 NULL 대체 로직이 필요한 경우 COALESCE를 우선적으로 고려