-
SQL COALESCE 함수 A to Z: NULL이 아닐 때까지 대체값 찾기Database 2025. 7. 3. 11:24반응형
들어가며
데이터를 처리하다 보면 여러 컬럼 중 첫 번째로 값이 존재하는(≠NULL) 컬럼을 골라 쓰고 싶을 때가 있습니다. 이럴 때 쓰기 좋은 함수가 COALESCE입니다. 이번 글에서는 COALESCE의 역할, 문법, 다양한 예제를 통해 활용법을 정리합니다.
1. COALESCE란?
COALESCE(expr1, expr2[, expr3, …]) 함수는 인자들을 왼쪽부터 순서대로 검사하여,
- 첫 번째로 NULL이 아닌 값을 반환
- 모두 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;
- 해설
- customer_memo가 있으면 → 그 값 사용
- 없으면 admin_note 사용
- 그래도 없으면 default_note 사용
- 모두 없으면 → 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;
이렇게 하면,
- 프로필 이미지가 실제 URL인 경우 → 그대로
- 빈 문자열('') 또는 NULL인 경우 → 'default.jpg'로 대체
하여 원하는 “빈 문자열도 기본값으로 바꾸는” 로직을 구현할 수 있습니다.
마치며
COALESCE는 NULL 처리에서 거의 필수적인 함수입니다. 간단하지만 논리적으로 깔끔하게 여러 대체값을 지정할 수 있어, SQL 문을 한결 읽기 쉽고 유지보수하기 좋게 만들어줍니다. 두 함수(NULLIF + COALESCE)를 잘 조합하여 실무에서 NULL 처리 로직을 단순화해보세요!
반응형'Database' 카테고리의 다른 글
SQL NULLIF 함수 완벽 가이드: 특정 값을 NULL로 대체하기 (1) 2025.07.03 SSMS(MSSQL)에서 Oracle로 DB-Link하는 방법 (0) 2019.06.21 더 빠른 SQL 쿼리를 위한 데이터베이스 튜닝 규칙 21가지 (0) 2019.01.02