ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL COALESCE 함수 A to Z: NULL이 아닐 때까지 대체값 찾기
    Database 2025. 7. 3. 11:24
    반응형

    들어가며

    데이터를 처리하다 보면 여러 컬럼 중 첫 번째로 값이 존재하는(≠NULL) 컬럼을 골라 쓰고 싶을 때가 있습니다. 이럴 때 쓰기 좋은 함수가 COALESCE입니다. 이번 글에서는 COALESCE의 역할, 문법, 다양한 예제를 통해 활용법을 정리합니다.


    1. COALESCE란?

    COALESCE(expr1, expr2[, expr3, …]) 함수는 인자들을 왼쪽부터 순서대로 검사하여,

    1. 첫 번째로 NULL이 아닌 값을 반환
    2. 모두 NULL이면 → NULL 반환

    하는 함수입니다.


    2. 기본 문법

    COALESCE(값1, 값2, 값3, …)

    3. 실전 예제

    예제 테이블: orders


    3-1) 우선순위 메모 가져오기
    SELECT
      order_id,
      COALESCE(customer_memo, admin_note, default_note) AS final_note
    FROM orders;
    • 해설
      1. customer_memo가 있으면 → 그 값 사용
      2. 없으면 admin_note 사용
      3. 그래도 없으면 default_note 사용
      4. 모두 없으면 → NULL

    3-2) 실행 결과


     

    4. 고급 활용

    • NULLIF와 조합
      • COALESCE(NULLIF(col, ''), '기본값') → 빈 문자열을 NULL화 후 기본값으로 대체
    SELECT
      u.user_id,
      COALESCE(
        NULLIF(p.profile_pic, ''),  -- 빈 문자열을 NULL로 바꿈
        'default.jpg'               -- NULL일 때만 이 값을 사용
      ) AS profile_image
    FROM users u
    LEFT JOIN profiles p
      ON u.user_id = p.user_id;

    이렇게 하면,

    1. 프로필 이미지가 실제 URL인 경우 → 그대로
    2. 빈 문자열('') 또는 NULL인 경우 → 'default.jpg'로 대체
      하여 원하는 “빈 문자열도 기본값으로 바꾸는” 로직을 구현할 수 있습니다.

    마치며

    COALESCE는 NULL 처리에서 거의 필수적인 함수입니다. 간단하지만 논리적으로 깔끔하게 여러 대체값을 지정할 수 있어, SQL 문을 한결 읽기 쉽고 유지보수하기 좋게 만들어줍니다. 두 함수(NULLIF + COALESCE)를 잘 조합하여 실무에서 NULL 처리 로직을 단순화해보세요!

    반응형

    댓글

Designed by Tistory.