Предложение ORDER BY
В общем случае строки в результирующей таблице SQL-запроса ни-
как не упорядочены. Однако их можно требуемым образом отсортиро-
вать, для чего в оператор SELECT помещается фраза ORDER BY. ORDER BY,
которая сортирует данные выходного набора в заданной последовательно-
сти. Сортировка может выполнятьсяпо нескольким полям, в этом случае
они перечисляются за ключевым словом ORDER BY через запятую. Способ
сортировки задается ключевым словом, указываемым в рамках параметра
ORDER BY следом за названием поля, по которому выполняется сортировка.
По умолчанию реализуется сортировка по возрастанию. Явно она задается
ключевым словом ASC. Для выполнения сортировки в обратной последо-
вательности необходимо после имени поля, по которому она выполняется,
указать ключевое слово DESC. Фраза ORDER BY позволяет упорядочить
выбранные записи в порядке возрастания или убывания значений любого
столбца или комбинации столбцов, независимо от того, присутствуют эти
столбцы в таблице результата или нет. Фраза ORDER BY всегда должна
быть последним элементом в операторе SELECT.
Пример 4.16. Вывести список клиентов в алфавитном порядке.
SELECT Клиент.Фамилия, Клиент.Фирма FROM Клиент
ORDER BY Клиент.Фамилия
Во фразе ORDER BY может быть указано и больше одного элемента.
Главный (первый) ключ сортировки определяет общую упорядоченность
строк результирующей таблицы. Если во всех строках результирующей
таблицы значения главного ключа сортировки являются уникальными,
нет необходимости использовать дополнительные ключи сортировки.
Однако, если значения главного ключа не уникальны, в результирующей
таблице будет присутствовать несколько строк с одним и тем же значением
старшего ключа сортировки. В этом случае, возможно, придется упорядо-
чить строки с одним и тем же значением главного ключа по какому-либо
дополнительному ключу сортировки.
Пример 4.17. Вывести список фирм и клиентов. Названия фирм
упорядочить в алфавитном порядке, имена клиентов в каждой фирме
отсортировать в обратном порядке.
SELECT Клиент.Фирма, Клиент.Фамилия FROM Клиент
ORDER BY Клиент.Фирма, Клиент.Фамилия DESC
Курс
84
Основы SQL