Сортировка 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] …]]