이 글에서는 SQL Server에서 COALESCE 함수를 활용하는 방법을 구체적인 문법과 예제와 함께 자세히 소개합니다. 예제를 통해 함수의 동작 방식을 한눈에 파악할 수 있도록 설명해 드리겠습니다.
COALESCE란 무엇인가?
COALESCE 함수는 인수로 전달된 여러 표현식 중 첫 번째로 NULL이 아닌 값을 반환합니다. 만약 전달된 모든 표현식이 NULL이라면, COALESCE는 최종적으로 NULL을 반환합니다.
이 함수는 데이터베이스 작업에서 NULL 값을 다른 기본값으로 대체하거나, 여러 컬럼 중 유효한 값을 우선적으로 선택해야 할 때 매우 유용하게 사용됩니다.
기본 문법
SQL Server에서 COALESCE 함수를 사용할 때는 다음과 같은 문법을 따릅니다:
COALESCE (표현식_1, 표현식_2, ... , 표현식_n)
매개변수 설명
- 표현식_1, 표현식_2, ... , 표현식_n: 임의의 데이터 타입을 가진 표현식입니다. 단, 모든 표현식은 동일한 타입이거나 서로 변환 가능한 타입이어야 합니다. 예를 들어 표현식_1이 문자열 타입이라면 나머지 표현식들도 문자열 타입이어야 하고, 숫자 타입이라면 마찬가지로 숫자 타입으로 통일해야 합니다.
참고 사항
- COALESCE 함수는 SQL Server 2017, 2016, 2014, 2012, 2008 R2, 2008, 2005 등 이후 버전에서 모두 사용할 수 있습니다.
- ISNULL 함수와 비슷한 역할을 하지만, COALESCE는 두 개 이상의 표현식을 처리할 수 있고 ANSI SQL 표준을 준수한다는 차이점이 있습니다.
실전 예제
다양한 예제를 통해 COALESCE 함수의 동작 방식을 살펴보겠습니다.
SELECT COALESCE(NULL, NULL, 'TipsMake.com', NULL, 'ChuyenCongNghe');
-- 결과: 'TipsMake.com'
위 예제에서는 세 번째 위치의 'TipsMake.com'이 처음으로 등장하는 NULL이 아닌 값이므로 해당 문자열이 반환됩니다.
SELECT COALESCE(NULL, 'TipsMake.com', 'Quantrimang');
-- 결과: 'TipsMake.com'
여러 개의 NULL이 아닌 값이 존재하더라도, COALESCE는 항상 가장 먼저 만나는 값만 반환하고 이후의 값들은 평가하지 않습니다.
SELECT COALESCE(NULL, NULL, 1, 2, 3, NULL, 4);
-- 결과: 1
숫자 타입의 표현식에도 동일하게 적용됩니다. 앞의 두 개의 NULL을 건너뛰고 세 번째 값인 1을 반환합니다.
마무리
COALESCE 함수는 NULL 처리를 간결하게 만들어 주는 필수적인 도구입니다. 특히 조인 결과나 집계 쿼리에서 NULL로 인한 오류나 빈 화면을 방지하고 싶을 때 적극적으로 활용해 보시기 바랍니다.