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;