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