Вы сортируете товары по величине скидки 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 — самый чистый способ.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

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