Глава 2. Запросы с использованием единственной таблицы
2.1 О предложении SELECT
2.2 Выборка без использования фразы WHERE
2.3 Выборка c использованием фразы WHERE
2.4 Выборка с упорядочением
2.5 Агрегирование данных
Синтаксис фразы упорядочения был дан в п. 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,а.
|