Gymterview
junior

Для чего используется оператор ORDER BY?

ORDER BY упорядочивает результат запроса по значениям одного или нескольких столбцов. Без ORDER BY порядок строк в результате не гарантирован — СУБД может вернуть их в любом порядке, который окажется наиболее эффективным.

Для каждого столбца можно задать направление сортировки: ASC (по возрастанию, используется по умолчанию) или DESC (по убыванию). При указании нескольких столбцов сортировка применяется последовательно — сначала по первому столбцу, при равных значениях — по второму и так далее.

Пример
-- Сортировка по отделу (по возрастанию), внутри отдела — по зарплате (по убыванию)
SELECT name, department, salary
FROM employees
ORDER BY department ASC, salary DESC;

Важные детали

  • NULL-значения при сортировке по умолчанию считаются наибольшими в PostgreSQL (идут последними при ASC). Можно управлять этим: ORDER BY column ASC NULLS FIRST
  • Можно сортировать по номеру столбца (ORDER BY 2), но это ухудшает читаемость
  • Можно сортировать по вычисляемым выражениям и алиасам из SELECT

На собеседовании: важно упомянуть, что без ORDER BY порядок строк не гарантирован. Частая ошибка — полагаться на «естественный порядок» вставки без явной сортировки.