ORDER BY в PostgreSQL: сортировка результатов запроса

ORDER BY в PostgreSQL используется для сортировки строк в результирующем наборе запроса. По умолчанию сортировка выполняется в порядке возрастания (ASC), но можно указать порядок убывания (DESC).

Сортировка по одному столбцу

Сортировка списка пользователей по имени в алфавитном порядке:

SELECT * FROM users ORDER BY name;

Сортировка по убыванию:

SELECT * FROM users ORDER BY name DESC;

Сортировка по нескольким столбцам

Если указано несколько столбцов, сортировка сначала выполняется по первому, затем по второму:

SELECT * FROM users ORDER BY age DESC, name ASC;

Сначала сортируются строки по age (по убыванию), затем внутри каждой возрастной группы сортировка выполняется по name (по возрастанию).

Сортировка с NULL значениями

По умолчанию NULL значения идут первыми при сортировке по возрастанию и последними при сортировке по убыванию. Это поведение можно изменить:

SELECT * FROM users ORDER BY age NULLS FIRST;
SELECT * FROM users ORDER BY age NULLS LAST;

Ограничение числа строк после сортировки

Для выборки первых N строк после сортировки используется LIMIT:

SELECT * FROM users ORDER BY age DESC LIMIT 5;

Можно также пропустить первые N строк с помощью OFFSET:

SELECT * FROM users ORDER BY age DESC LIMIT 5 OFFSET 10;