MySQL의 COALESCE() 함수는 인수 목록을 왼쪽부터 차례로 검사하여 처음으로 만나는 NULL이 아닌 값을 반환하는 함수입니다. 그렇다면 전달된 모든 인수가 NULL이라면 어떻게 될까요?
이 경우 COALESCE() 함수는 NULL을 반환합니다. 즉, 인수 목록 안에서 NULL이 아닌 값을 하나도 찾지 못했다는 의미입니다.
예제
mysql> Select COALESCE(NULL, NULL, NULL, NULL); +----------------------------------+ | COALESCE(NULL, NULL, NULL, NULL) | +----------------------------------+ | NULL | +----------------------------------+ 1 row in set (0.00 sec)
위 예제에서처럼 네 개의 인수가 모두 NULL이므로 함수는 최종적으로 NULL을 출력합니다. 따라서 실무에서 COALESCE() 함수를 사용할 때는 적어도 하나의 유효한(Non-NULL) 값 또는 기본값을 마지막 인수로 함께 지정해 주는 것이 좋습니다. 예를 들어 COALESCE(컬럼명, '기본값') 형태로 작성하면 컬럼 값이 NULL일 때에도 의미 있는 결과를 얻을 수 있습니다.