NULL часто ломают отчёты и расчёты: сумма, среднее, сортировка — всё сбивается. COALESCE() подставляет первое непустое значение и спасает от ошибок.Заменим отсутствующие телефоны на понятный текст:
SELECT name, COALESCE(phone, 'не указано') AS phone
FROM customers;
В реальных проектах — незаменимо для расчётов:
SELECT id, total,
total - (total * COALESCE(discount, 0) / 100) AS total_after_discount
FROM orders;
При объединении источников можно задать приоритет данных:
SELECT user_id,
COALESCE(main.email, backup.email, 'unknown@example.com') AS email
FROM main_users AS main
LEFT JOIN backup_users AS backup USING (user_id);
Для аналитики — способ исключить искажения при агрегации:
SELECT region, SUM(COALESCE(sales, 0)) AS total_sales
FROM branches
GROUP BY region;
🔥
COALESCE делает запросы надёжнее, отчёты точнее, а код — чище и короче.➡️ SQL Ready | #практика