Синтаксис фразы упорядочения был дан в п. 2.1. Простейший вариант этой фразы - упорядочение строк результата по значению одного из столбцов с указанием порядка сортировки или без такого указания. (По умолчанию строки будут сортироваться в порядке возрастания значений в указанном столбце.)
Например, выдать перечень продуктов и содержание в них основных веществ в порядке убывания содержания белка
Результат:
SELECT Продукт, Белки, Жиры, Углев
FROM Продукты
ORDER BY Белки DESC;
Продукт
Белки
Жиры
Углев
Судак
190.
80.
0.
Говядина
189.
124.
0.
Творог
167.
90.
13.
Яйца
127.
115.
7.
Кофе
127.
36.
9.
Мука
106.
13.
732.
. . .
При включении в список ORDER BY нескольких столбцов СУБД сортирует строки результата по значениям первого столбца списка пока не появится несколько строк с одинаковыми значениями данных в этом столбце. Такие строки сортируются по значениям следующего столбца из списка ORDER BY и т.д.
Например, выдать содержимое таблицы Блюда, отсортировав ее строки по видам блюд и основе:
Результат:
SELECT *
FROM Блюда
ORDER BY В Основа;
БЛ
Блюдо
В
Основа
Выход
Труд
Пудинг рисовый
Г
Крупа
160.
Каша рисовая
Г
Крупа
210.
Сырники
Г
Молоко
220.
. . .
Драчена
Г
Яйца
180.
Крем творожный
Д
Молоко
160.
. . .
Яблоки печеные
Д
Фрукты
160.
Сметана
З
Молоко
140.
Творог
З
Молоко
140.
Салат мясной
З
Мясо
200.
Мясо с гарниром
З
Мясо
250.
Салат летний
З
Овощи
200.
. . .
Кроме того, в список ORDER BY можно включать не только имя столбца, а его порядковую позицию в перечне SELECT. Благодаря этому возможно упорядочение результатов на основе вычисляемых столбцов, не имеющих имен.
Например, запрос
SELECT Продукт, ((Белки+Углев)*4.1+Жиры*9.3)
FROM Продукты
ORDER BY 2;
позволит получить список продуктов, показанный на рис.2.2,в – переупорядоченный по возрастанию значений калорийности список рис.2.2,а.