300x250
SQL의 COALESCE 함수는 제공된 여러 인수 중 첫 번째 NULL이 아닌 값을 반환하는 데 사용됩니다.
NULL 처리를 위한 강력한 도구로, 여러 열 또는 표현식에서 대체 값을 설정하거나 기본값을 제공하는 데 유용합니다.
COALESCE 함수의 문법
COALESCE(expression1, expression2, ..., expressionN)
- expression1, expression2, ..., expressionN: COALESCE 함수는 왼쪽부터 차례로 평가하며, NULL이 아닌 첫 번째 값을 반환합니다.
- 모든 인수가 NULL이면 결과도 NULL이 반환됩니다.
COALESCE 함수 사용 예제
1. 기본 사용: NULL 대체
예를 들어, 고객의 nickname이 NULL일 경우, real_name을 사용하고 싶을 때:
SELECT COALESCE(nickname, real_name) AS display_name FROM customers;
- nickname이 NULL이면 real_name이 반환됩니다.
- 둘 다 NULL이면 결과는 NULL입니다.
2. 다중 표현식 사용
여러 대체값을 제공하여, 첫 번째 NULL이 아닌 값을 반환합니다.
SELECT COALESCE(nickname, real_name, 'Unknown') AS display_name FROM customers;
- nickname → real_name → 'Unknown' 순으로 평가하며, NULL이 아닌 첫 번째 값을 반환합니다.
3. 열 또는 계산식 조합
NULL 값을 처리하는 데 계산식과 함께 사용할 수도 있습니다.
SELECT COALESCE(salary, 0) + bonus AS total_income FROM employees;
- salary가 NULL이면 0을 사용하여 합산합니다.
COALESCE와 다른 NULL 처리 함수 비교
NVL (Oracle)
Oracle 데이터베이스에서 사용되는 유사한 함수입니다. 두 개의 인수를 비교해 NULL인 경우 대체값을 반환합니다.
NVL(expression1, expression2)
- COALESCE는 여러 인수를 처리할 수 있지만, NVL은 두 개의 인수만 허용합니다.
ISNULL (SQL Server)
SQL Server에서 사용되는 함수로, NULL을 대체합니다.
ISNULL(expression1, replacement_value)
- COALESCE는 ANSI 표준이므로 다양한 DBMS에서 사용 가능합니다.
실제 활용 사례
1. 기본값 설정
사용자 테이블에서 last_login이 NULL인 경우 기본값으로 "1970-01-01"을 설정:
SELECT COALESCE(last_login, '1970-01-01') AS last_login_date
FROM users;
2. 다중 열 처리
주소 데이터에서 우선순위에 따라 고객의 주소를 반환:
SELECT COALESCE(home_address, office_address, 'No Address Available') AS primary_address
FROM customer_addresses;
3. 그룹화 및 집계
매출 테이블에서 특정 컬럼이 NULL인 경우 0으로 처리하여 합계 계산:
SELECT department_id, SUM(COALESCE(sales_amount, 0)) AS total_sales
FROM sales
GROUP BY department_id;
요약
- COALESCE는 첫 번째 NULL이 아닌 값을 반환하는 함수로, NULL을 처리하고 기본값을 제공하는 데 적합합니다.
- 다중 열, 표현식, 기본값 설정 등 다양한 상황에서 활용 가능합니다.
- 다른 NULL 처리 함수들보다 유연하며, ANSI SQL 표준이기 때문에 다양한 DBMS에서 사용 가능합니다.
300x250
'IT > DB' 카테고리의 다른 글
데이터베이스 SQL JOIN, LEFT JOIN 차이는? (0) | 2024.12.03 |
---|---|
DBMS 뜻? 종류? (1) | 2024.11.27 |
데이터베이스 SQL에서 다음행 찾는 LEAD( ) OVER ( ) 함수 (0) | 2024.11.23 |
mysql workbench 자동 대문자 변환하는 방법 (0) | 2024.11.21 |
PK 2개일 경우 인덱스 특징 (0) | 2024.11.21 |