УПОРЯДОЧЕНИЕ С ПОМОЩЬЮ МНОГОЧИСЛЕНЫХ СТОЛБЦОВ
Мы можем также упорядочивать таблицу с помощью другого столбца, например с помощью поля amt, внутри упорядочения
поля cnum. ( вывод показан в Рисунке 7.5 ): 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/06/1990 |
2006 |
1001 |
3008 |
4723.00 |
10/05/1990 |
2006 |
1001 |
3010 |
1309.95 |
10/06/1990 |
2004 |
1002 |
3007 |
75.75 |
10/04/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, в принципе желательно.