Открытая коллекция знаний

OpenU.Ru

Язык запросов SQL. DML.

Сортировка результатов SQL-запроса

Большинство системы управления базами данных предоставляют специальные средства позволяющие совершенствовать вывод запросов.

Предположим, что вы хотите выполнять простые числовые вычисления данных, чтобы затем помещать их в форму больше соответствующую вашим потребностям. SQL позволяет вам помещать скалярные выражения и константы среди выбранных полей. Например, необходимо посмотреть будущую цену товара с учетом повышения ее в два раза. Для этого воспользуемся следующим запросом:

SELECT GTame,GTypeNum, GPrice*2 FROM Goods

В результате получим:

GName GTypeNum
Сахар 1 24
Мука 1 18
Мыло 3 10
Пиво 2 18
Фен «Philips» 4 260
Печенье 1 30
Консервы 1 34
Вино 2 70

В результате запроса последний столбец без наименования, потому что это столбец данных, созданный запросом, а не просто извлеченный из таблицы. Такие столбцы появляются каждый раз, когда используются функции, константы или выражения в предложении SELECT, когда столбцы не берутся из таблиц и не имеют никаких имен. Перепишем предыдущий запрос в следующем виде:

SELECT GTame, GTypeNum, 'удвоенная цена', GPrice*2
FROM Goods

В результате получим:

GName GTypeNum
Сахар 1 удвоенная цена 24
Мука 1 удвоенная цена 18
Мыло 3 удвоенная цена 10
Пиво 2 удвоенная цена 18
Фен «Philips» 4 удвоенная цена 260
Печенье 1 удвоенная цена 30
Консервы 1 удвоенная цена 34
Вино 2 удвоенная цена 70

Для того, чтобы упорядочить строки результата запроса используют команду ORDER BY. После этой команды указываются имена (либо имя) столбцов, по которым нужно упорядочить строки. Для упорядочения по возрастанию используется инструкция ASC, по убыванию – инструкция DESC. Например, выведем список товаров, упорядоченных в алфавитном порядке по наименованию:

SELECT * FROM Goods Order by GName ASC

В результате получим:

Gnum GName GTypeNum GPrice
8 Вино 2 35
7 Консервы 1 17
2 Мука 1 9
3 Мыло 3 5
6 Печенье 1 15
4 Пиво 2 9
1 Сахар 1 12
5 Фен «Philips» 4 130

При упорядочении по возрастанию инструкцию ASC можно не указывать (подразумевается по умолчанию). Если необходимо произвести сортировку по нескольким полям, то их перечисляют через запятую после команды ORDER BY.

Содержание