NULL 처리를 위한 COALESCE
Coddy SQL 여정의 심화 과정 섹션에 포함된 레슨. 27개 중 3번째.
COALESCE는 NULL이 아닌 첫 번째 인수를 반환합니다:
COALESCE(nickname, first_name, 'Anonymous')왼쪽에서 오른쪽으로 읽으며 처음으로 null이 아닌 값에서 멈춥니다. CASE가 필요 없이 쿼리에서 대체 값을 제공하는 가장 깔끔한 방법입니다.
일반적인 사용 사례:
LEFT JOIN에서NULL대신0표시:COALESCE(SUM(amount), 0)- 비어 있지 않은 첫 번째 선택적 필드 선택:
COALESCE(mobile, home, work)
챌린지
쉬움사용 가능한 테이블과 열:
users:id,display_name,orders:user_id,amount
다음 항목을 포함하여 사용자당 한 행을 반환하세요:
idlabel:display_name이 설정되어 있으면display_name, 그렇지 않으면email, 그것도 없으면'unknown'total_spent: 사용자의 주문amount합계; 주문이 없는 사용자는NULL이 아닌0을 표시해야 합니다
id를 기준으로 정렬하세요. 힌트: users에서 orders로의 LEFT JOIN과 COALESCE(SUM(...), 0)을 함께 사용하면 누락된 행을 처리할 수 있습니다.
직접 해보기
SELECT u.id,
-- COALESCE를 통한 label
-- COALESCE(SUM(...), 0)을 통한 total_spent
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id
ORDER BY u.id
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
심화 과정의 모든 레슨
직접 연습해 보세요: SQL 플레이그라운드