[SQL] COALESCE

2024. 12. 27. 08:32[SQL]

COALESCE

COALESCE(expression1, expression2, ..., expressionN)
- COALESCE는 하나 이상의 표현식 중에서
  가장 첫 번째로 NULL이 아닌 값을 반환하는 함수이다.
 
- 모든 표현식이 NULL이면 NULL을 반환한다.
 
EX1 EX2 COALESCE(EX1, EX2)
1 NULL 1
NULL 2 2
3 4 3
NULL NULL NULL

 


- NULL 값이 아닌 값을 반환한다는 점에서
  NULL값을 특정 값으로 변환하는데 사용하기도 한다.

 

EX) 나이를 모르는 경우 'Unknown"으로 표기

SELECT COALESCE(AGE, 'Unknown')
FROM 테이블명;

 


COALESCE vs ISNULL / IFNULL 

  • COALESCE:
    • 표준 SQL 함수로 대부분의 데이터베이스에서 지원
    • 2개 이상의 표현식을 허용
  • ISNULL 또는 IFNULL:
    • 특정 데이터베이스에 종속적 (SQL Server, MySQL)
    • 단일 NULL 대체만 가능
-- COALESCE
SELECT COALESCE(col1, col2, col3, 'Default') FROM table;

-- ISNULL (SQL Server) or IFNULL (MySQL)
SELECT ISNULL(col1, 'Default') FROM table;
SELECT IFNULL(col1, 'Default') FROM table;