COALESCE 함수 (Oracle SQL)

SQL 공부

목록 보기
2/11

COALESCE 함수 (Oracle SQL)

COALESCE 함수는 NULL이 아닌 첫 번째 값을 반환하는 함수입니다.
즉, 여러 개의 값 중에서 NULL이 아닌 가장 앞에 있는 값을 찾을 때 사용합니다.


📌 COALESCE 기본 문법

COALESCE(value1, value2, value3, ..., valueN)
  • 왼쪽부터 차례대로 확인하며 NULL이 아닌 첫 번째 값을 반환
  • 모든 값이 NULL이면 NULL을 반환
  • 두 개 이상의 인자를 입력해야 함 (COALESCE(value1)처럼 단독 사용 불가)

COALESCE 함수 예제

1️⃣ NULL이 아닌 첫 번째 값 반환

SELECT COALESCE(NULL, NULL, 'A', 'B') FROM dual;

🔹 결과: 'A'

  • 앞의 두 개가 NULL이므로 'A' 반환
SELECT COALESCE(NULL, 'Hello', 'World') FROM dual;

🔹 결과: 'Hello'

  • 첫 번째 NULL이므로 'Hello' 반환

2️⃣ 모든 값이 NULL인 경우

SELECT COALESCE(NULL, NULL, NULL) FROM dual;

🔹 결과: NULL

  • 모든 값이 NULL이므로 반환값도 NULL

3️⃣ COALESCE를 활용한 컬럼 기본값 설정

SELECT employee_id, COALESCE(department, '부서 없음') AS department
FROM employees;
  • department 값이 NULL이면 '부서 없음'을 반환
SELECT customer_name, COALESCE(phone, email, '연락처 없음') AS contact_info
FROM customers;
  • phoneNULL이면 email 사용
  • emailNULL이면 '연락처 없음' 반환

COALESCE vs NVL 차이점

함수설명예제 (COALESCE(NULL, 'A', 'B') vs NVL(NULL, 'A'))
COALESCE(a, b, c, ...)여러 개의 값 중 NULL이 아닌 첫 번째 값 반환COALESCE(NULL, 'A', 'B') = 'A'
NVL(a, b)첫 번째 값이 NULL이면 두 번째 값 반환 (2개만 비교 가능)NVL(NULL, 'A') = 'A'

COALESCE는 여러 개의 값을 확인할 때 유용
NVL은 단순히 두 개의 값 중 하나만 선택할 때 사용


🎯 정리

  • COALESCE(value1, value2, ...) → NULL이 아닌 첫 번째 값 반환
  • 여러 개의 값을 비교할 때 유용 (반면 NVL은 2개만 비교 가능)
  • 모든 값이 NULL이면 결과도 NULL

Oracle에서 NULL 처리를 유연하게 하고 싶다면 COALESCE를 적극 활용하세요! 🚀

profile
AI 답변 글을 주로 올립니다.

0개의 댓글