Вы сортируете товары по величине скидки discount по убыванию. Поле discount может быть NULL (скидки нет). Чтобы товары без скидки всегда оказывались внизу независимо от настроек СУБД, какой вариант сортировки выбрать?

AORDER BY discount DESC LIMIT 100
BORDER BY discount DESC NULLS FIRST
CORDER BY discount DESC NULLS LAST
DORDER BY COALESCE(discount, 0) DESC
Правильный ответ. Конструкции NULLS FIRST и NULLS LAST позволяют явно зафиксировать позицию NULL при сортировке, не полагаясь на дефолт СУБД.

Разбор

Поведение NULL при сортировке отличается между системами: где-то NULL сверху, где-то снизу. Для отчётов лучше задавать порядок явно: если NULL означает «нет скидки» и должен оказаться внизу, добавляют NULLS LAST. LIMIT не управляет положением NULL, а замена NULL через COALESCE смешивает «нет скидки» с реальной нулевой скидкой и искажает интерпретацию. Явный NULLS LAST — самый чистый способ.

Проверь себя · 1/3разбор после ответа
Нужно выбрать заказы за декабрь 2025 из таблицы заказов по полю created_at с временем. Какой фильтр надёжнее задаёт диапазон «весь месяц» без потерь по краям?
Тренировать SQL в Telegram

Ещё вопросы по теме «Основы SQL-запросов»