Сортировка SQL – Предложение ORDER BY

Примечание:
Во всех статьях текущей категории уроков по SQL используются примеры и задачи, основанные на учебной базе данных.

Приступая к изучению данного материала, рекомендуется ознакомиться с описанием учебной БД.

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

За упорядочивание строк, выгружаемых в SQL-запросе, отвечает предложение ORDER BY. Оно располагается в самом конце запроса:

SELECT <Перечень столбцов>
FROM <Перечень таблиц>
ORDER BY <Условие сортировки>

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

ORDER BY col1, col2

Порядок сортировки в SQL

Возможны 2 варианта сортировки: по возрастанию и по убыванию. Для указания типа сортировки в запросе после названия столбца указывается ключевое слово ASC (ascending) или DESC (descending), которые определяют возрастающий либо убывающий порядок соответственно. По умолчанию используется тип ASC:

ORDER BY col1
-- следующее предложение будет равнозначным
ORDER BY col1 ACS

Также возможно указать разный порядок для разных столбцов:

ORDER BY col1 DESC, col2 ASC
Пример различной сортировки для разных столбцов

Для закрепления материала решите задачу на учебной БД:

Необходимо получить список идентификаторов сотрудников, отсортированный по группам в порядке возрастания и дате найма "от новых к старым".

Решение:

SELECT id, Группа, Дата_найма
FROM Сотрудники
ORDER BY Группа, Дата_найма DESC

Пополним синтаксис оператора SELECT предложением ORDER BY (вертикальная черта означает необходимость выбора одного из вариантов):

SELECT [DISTINCT] [Имя_таблицы.]Имя_столбца[, [Имя_таблицы.]Имя_столбца2 …]
FROM [[Имя_базы_данных.]Имя_Схемы.]Имя_таблицы
[WHERE Условие_отбора]
[ORDER BY [Имя_таблицы.]Имя_столбца [ASC | DESC] [, [Имя_таблицы.]Имя_столбца2 [ASC | DESC] …]]

Добавить комментарий