Резюме: В этой статье наглядно показано, как применять предложение ORDER BY для сортировки данных с помощью указания заданного порядка (возрастающего или убывающего).
Введение
Операнд SQL ORDER BY не является обязательным условием команды SELECT. Он дает возможность сортировать строки, получаемые из SELECT совместно с одним или несколькими критериям сортировки заданного порядка.
Далее отображен стандартный синтаксис условия ORDER BY:
В этом синтаксисе:
- Вначале разместите условие ORDER BY после FROM. База данных расценит команду SELECT с опцией сортировки в следующем порядке: FROM > SELECT > ORDER BY.
- Затем укажите порядок сортировки после ORDER BY.
- После чего примените опцию ASC, чтобы набор результатов данных отображался в порядке возрастания или DESC для того, чтобы результирующий набор данных был отсортирован в порядке убывания (от большего к меньшему).
Следует обратить внимание на то, что в SQL по умолчанию в ORDER BY (если вы не указали ни ASC, ни DESC) используется опция ASC.
ORDER BY также дает возможность отсортировать результаты итоговой выборки не только по одному, но и по нескольким выражениям. В таком случае нужно перечислить все колонки (каждый со своей опцией сортировки ASC или DESC) через запятую:
В этом примере вначале данные отсортируются по выражению sort_expression_1, а в рамках одинаковых значений sort_expression_1 по выражению sort_expression_2.
Следует учесть, что в SQL если не указывать условие ORDER BY, то команда SELECT не станет сортировать набор результатов, либо отсортирует их по ключевому полю (Primary Key).
Примеры использования ORDER BY
Для наглядной демонстрации будем использовать таблицу employees.
1) Рассмотрим сортировку значений в одном столбце на примере ORDER BY
В примере ниже команда SELECT выбирает данные из столбцов «id сотрудника», «имя», «фамилия», «дата приема на работу» и «зарплата» таблицы employees: select * from employees, или так как на картинке ниже
Как видно из вывода, строки не упорядочены.
Далее ORDER BY применяется чтобы отсортировать сотрудников по фамилии в алфавитном порядке:
ORDER BY сортирует строки по значениям в столбце first_name.
2) Сортировка значений в нескольких столбцах на примере ORDER BY
Попробуем отсортировать сотрудников по имени и фамилии в порядке возрастания и по фамилии в порядке убывания:
В этом примере набор результатов выстраивается по фамилии в порядке возрастания, после чего реализуется выстраивание данных по фамилии в порядке убывания.
Обратите внимание на изменение положения двух сотрудников: Alexander Khoo и Alexander Hunold в наборе результатов.
3) Сортировка значений в числовом столбце с помощью ORDER BY
Данный способ реализации применяет условие ORDER BY, чтобы выстроить сотрудников с учетом их заработной платы (от большой к маленькой):
4) Использование SQL ORDER BY для сортировки по датам пример
Помимо символьных и числовых данных, вы можете использовать предложение ORDER BY для сортировки строк по дате. Например, в следующем операторе используется предложение ORDER BY для сортировки сотрудников по значениям в столбце hire_date:
Чтобы увидеть сотрудников, которые пришли в компанию от последнего к самому раннему, вы сортируете сотрудников по датам приема на работу в порядке убывания:
Сводка
Используйте предложение ORDER BY для сортировки строк, возвращаемых предложением SELECT. Применимо как к MySQL? так и к другим вариациям.
Используйте параметр ASC для сортировки строк по возрастанию и DESC для сортировки строк по убыванию.
Предыдущая статья: Оператор SELECT
Следующая статья: Предложение DISTINCT
А будут статьи про группировку having, where, Null and not null?