2.4. Выборка с упорядочением

Синтаксис фразы упорядочения был дан в п. 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 В
         Основа;
БЛ | Блюдо | В | Основа | Выход | Труд
--- | --- | --- | --- | --- | ---
21 | Пудинг рисовый | Г | Крупа | 160. | 6
20 | Каша рисовая | Г | Крупа | 210. | 4
18 | Сырники | Г | Молоко | 220. | 4
. . .
16 | Драчена | Г | Яйца | 180. | 4
28 | Крем творожный | Д | Молоко | 160. | 4
. . .
26 | Яблоки печеные | Д | Фрукты | 160. | 3
7 | Сметана | З | Молоко | 140. | 1
8 | Творог | З | Молоко | 140. | 2
2 | Салат мясной | З | Мясо | 200. | 4
6 | Мясо с гарниром | З | Мясо | 250. | 3
1 | Салат летний | З | Овощи | 200. | 3
. . .

Кроме того, в список ORDER BY можно включать не только имя столбца, а его порядковую позицию в перечне SELECT. Благодаря этому возможно упорядочение результатов на основе вычисляемых столбцов, не имеющих имен.

Например, запрос

    SELECT	Продукт, ((Белки+Углев)*4.1+Жиры*9.3)
    FROM	Продукты
    ORDER	BY 2;

позволит получить список продуктов, показанный на рис.2.2,в – переупорядоченный по возрастанию значений калорийности список рис.2.2,а.

2.3.5 | Содержание | 2.5.1