COALESCE 함수는 SQL에서 매우 유용한 함수로, 여러 값 중에서 NULL이 아닌 첫 번째 값을 반환하는 데 사용됩니다. 기본적으로 COALESCE는 여러 인수를 받아, 가장 먼저 NULL이 아닌 값을 찾을 때까지 인수들을 순차적으로 검사합니다.
기본 구문
COALESCE(expression1, expression2, ..., expressionN)
- expression1, expression2, ..., expressionN: 검사할 값들입니다. 이들 중 첫 번째로 NULL이 아닌 값을 반환합니다.
예제
- 단일 값 처리:
- 이 쿼리는 'Hello'를 반환합니다. 왜냐하면 NULL이 아닌 첫 번째 값이 'Hello'이기 때문입니다.
SELECT COALESCE(NULL, NULL, 'Hello', 'World') AS result;
- 컬럼 값 처리:
- 이 쿼리는 phone_number 컬럼이 NULL일 경우 'No phone number provided'라는 문자열을 반환합니다.
SELECT COALESCE(phone_number, 'No phone number provided') AS contact_phone FROM contacts;
2. 계산된 값 처리:
- total_sales가 NULL일 경우 0을 반환하여, NULL 대신 0으로 대체합니다.
SELECT
COALESCE(total_sales, 0) AS sales
FROM
sales_data;
사용 시기
- NULL 처리: 데이터베이스에서 NULL 값이 있을 수 있는 상황에서 NULL 대신 기본값을 제공하고 싶을 때 사용합니다.
- 데이터 변환: 여러 값 중 NULL이 아닌 첫 번째 값을 선택하고자 할 때 유용합니다.
- 쿼리 결과: 결과 셋에서 NULL 값을 처리하고 결과의 가독성을 높이고 싶을 때 사용됩니다.
COALESCE와 ISNULL 비교
- ISNULL(): SQL Server에서 사용되는 함수로, 두 개의 인수 중 첫 번째 값이 NULL일 경우 두 번째 값을 반환합니다. ISNULL(expression, replacement)과 같이 사용됩니다.
SELECT ISNULL(phone_number, 'No phone number provided') AS contact_phone FROM contacts;
- COALESCE(): 여러 인수를 지원하며, 모든 인수를 순차적으로 검사하여 첫 번째 NULL이 아닌 값을 반환합니다. SQL 표준 함수로, 다양한 데이터베이스 시스템에서 지원됩니다.
SELECT COALESCE(phone_number, alternate_phone, 'No phone number provided') AS contact_phone FROM contacts;
이처럼 COALESCE는 유연하게 여러 인수를 처리할 수 있으며, NULL 값을 적절히 대체하여 데이터의 가독성과 처리성을 높이는 데 도움이 됩니다.
'SQL 정리' 카테고리의 다른 글
3개 이상 쿼리를 조회할때 (0) | 2024.08.08 |
---|---|
시간대를 나누는 쿼리 (0) | 2024.08.08 |
오프라인/온라인 판매 데이터 통합하기(IFNULL, UNION) (0) | 2024.08.06 |
저자 별 카테고리 별 매출액 집계하기 (0) | 2024.08.02 |
연속 서브쿼리 (0) | 2024.07.31 |