Поле nickname у пользователя равно NULL, а email — 'anna@mail.ru'. Что вернёт SELECT COALESCE(nickname, email, 'аноним') FROM users для этой строки?
AФункция вернёт
NULL, потому что хотя бы один из аргументов равен NULLBФункция вернёт первый аргумент, который не равен
NULL, по порядку слева направоCФункция вернёт последний аргумент, который не равен
NULL, по порядку слева направоDФункция вернёт среднее арифметическое всех аргументов, которые не равны
NULLПравильный ответ.
COALESCE перебирает аргументы слева направо и возвращает первый, который не равен NULL.Разбор
COALESCE(nickname, email, 'аноним') проверяет значения по порядку: nickname равен NULL — пропускаем, email равен 'anna@mail.ru' — это не NULL, возвращаем его. Третий аргумент 'аноним' не проверяется. Функция полезна для подстановки значений по умолчанию и создания цепочек подстановки.
Проверь себя · 1/3разбор после ответа
Поле
nickname у пользователя равно NULL, а email — 'anna@mail.ru'. Что вернёт SELECT COALESCE(nickname, email, 'аноним') FROM users для этой строки?Ещё вопросы по теме «Основы SQL-запросов»
- В таблице `users` нужно выбрать только активных пользователей из России или Казахстана. Какой `WHERE` соответствует требованию?
- Для отчёта по регистрациям вам нужны только `user_id` и `signup_at` из таблицы `users`. Какой запрос лучше соответствует задаче и не тянет лишние поля?
- Нужно получить 20 самых новых событий из таблицы `events` (по времени `event_time`) и показать их в выдаче сверху. Какой запрос верный?
- Вы строите выдачу «последние заказы» и используете `LIMIT 50`. Поле `created_at` не уникально (много заказов в одну секунду). Какой `ORDER BY` лучше, чтобы порядок был детерминированным?
- Что можно корректно утверждать про результат запроса `SELECT user_id FROM users LIMIT 10`, если в запросе нет `ORDER BY`?
- Все вопросы по «Основы SQL-запросов» →