Сейчас на сайте
Сейчас на сайте 0 пользователей и 0 гостей.

Упорядочение с помощью многочисленных столбцов

Мы можем также упорядочивать таблицу с помощью другого столбца, например с помощью поля amt, внутри упорядочения поля cnum. ( вывод показан в Рисунке 7.5 ):

SELECT * FROM Orders ORDER BY cnum DESC, amt DESC;

SQL Execution Log

SELECT *

FROM Orders

ORDER BY cnum DESC, amt DESC;

onum amt odate cnum snum
3006 1098.16 10/03/1990 2008 1007
3001 18.69 10/03/1990 2008 1007
3002 1900.10 10/03/1990 2007 1004
3011 9891.88 10/05/1990 2006 1001
3008 4723.00 10/06/1990 2006 1001
30010 1309.95 10/04/1990 2004 1002
3007 75.75 10/06/1990 2004 1002
3005 5160.45 10/03/1990 2003 1002
3009 1713.23 10/04/1990 2002 1003
3003 767.19 10/03/1990 2001 1001

Рисунок 7.5: Упорядочение вывода с помощью многочисленных полей Вы можете использовать ORDER BY таким же способом сразу с любым числом столбцов. Обратите внимание что, во всех случаях, столбцы которые упорядочиваются должны быть указаны в выборе SELECT. Это - требование ANSI которые в большинстве, но не всегда, предписано системе. Следующая команда, например, будет запрещена:

SELECT cname, city FROM Customers GROUP BY cnum;

Так как поле cnum не было выбранным полем, GROUP BY не cможет найти его чтобы использовать для упорядочения вывода. Даже если ваша система позволяет это, смысл упорядочения не будет понятен из вывода, так что включение (в предложение SELECT) всех столбцов, исполяьзуемых в предложении ORDER BY, в принципе желательно.