Структуризированный язык запросов (SQL)


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


Синтаксис фразы упорядочения был дан в п. 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




Начало  Назад  Вперед



Книжный магазин