Что вернёт выражение COALESCE(NULL, NULL, 'web', 'app')?
A
NULLB
'app'C
'web'DОшибка, потому что есть
NULLПравильный ответ.
COALESCE возвращает первый аргумент, который не равен NULL.Разбор
COALESCE проверяет аргументы слева направо и возвращает первый не-NULL. В выражении COALESCE(NULL, NULL, 'web', 'app') первые два аргумента — NULL, третий — 'web', значит результат будет 'web'. Это удобно для подстановки значения по умолчанию или для выбора из нескольких потенциальных источников данных.
Проверь себя · 1/3разбор после ответа
Нужно выбрать заказы, где
delivery_city не равно 'Moscow', но при этом включить строки, где delivery_city = NULL (город неизвестен). Какой фильтр корректен?Ещё вопросы по теме «Выражения и NULL»
- Нужно выбрать пользователей без email. Какое условие в `WHERE` корректно найдёт строки, где `email` отсутствует (равен `NULL`)?
- В таблице `orders` поле `promo_code` может быть `NULL`. Что произойдёт со строкой, где `promo_code` = `NULL`, при фильтре `WHERE promo_code <> 'NONE'`?
- В таблице `sessions` 5 строк. Значения `utm_source`: `'google'`, `NULL`, `'email'`, `NULL`, `NULL`. Чему равны `COUNT(*)` и `COUNT(utm_source)`?
- В таблице `payments` три строки со значениями `amount`: `NULL`, `NULL`, `NULL`. Что вернут запросы `SELECT SUM(amount)` и `SELECT SUM(COALESCE(amount, 0))`?
- Дано выражение: `CASE WHEN status = 'paid' THEN amount ELSE 0 END`. Что вернётся, если `status` = `NULL` и `amount` = 500?
- Все вопросы по «Выражения и NULL» →