Указание направления сортировки
Сортировка данных не ограничена порядком по возрастанию (от А до Я). Несмотря на то что этот порядок является порядком по умолчанию, в предложении ORDER BY также можно использовать порядок по убыванию (от Я до А). Для этого необходимо указать ключевое слово DESC.
В следующем примере продукция сортируется по цене в убывающем порядке (вначале идут самые дорогие товары).
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price DESC;
prod id prod_price prod_name
--------- ------------ ------------------
BR03 11.9900 18 inch teddy bear
RYLOl 9.4900 King doll
RYL02 9.4900 Queen doll
BR02 8.9900 12 inch teddy bear
BROl 5.9900 8 inch teddy bear
RGANOl 4.9900 Raggedy Ann
BNBGOl 3.4900 Fish bean bag toy
BNBG02 3.4900 Bird bean bag toy
BNBG03 3.4900 Rabbit bean bag toy
Но что, если производится сортировка по нескольким столбцам? В следующем примере продукция сортируется по цене в убывающем порядке (вначале самые дорогие), плюс по названию продукта:
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price DESC, prod_name;
prod id prod_price prod_name
--------- ------------ ------------------
BR03 11.9900 18 inch teddy bear
RYLOl 9.4900 King doll
RYL02 9.4900 Queen doll
BR02 8.9900 12 inch teddy bear
BROl 5.9900 8 inch teddy bear
RGANOl 4.9900 Raggedy Ann
BNBG02 3.4900 Bird bean bag toy
BNBGOl 3.4900 Fish bean bag toy
BNBG03 3.4900 Rabbit bean bag toy
Ключевое слово DESC применяется только к тому столбцу, после которого оно указано. В предыдущем примере ключевое слово DESC было указано для столбца prod_price, но не для prod_name. Таким образом, столбец prod_price отсортирован в порядке убывания, а столбец prod_name в обычном, возрастающем порядке.
Сортировка по убыванию по нескольким столбцам
Если вы хотите отсортировать данные в порядке убывания по нескольким столбцам, укажите для каждого из них ключевое слово DESC.
Следует упомянуть, что DESC — это сокращение от DESCENDING, можно использовать оба ключевых слова. Противоположным словом для DESC является ASC (ASCENDING), которое можно указывать для сортировки по возрастанию. Однако на практике слово ASC обычно не применяется, поскольку такой порядок используется по умолчанию (он предполагается, если не указано ни ABС, ни DESC).
Чувствительность к регистру и порядок сортировки
При сортировке текстовых данных А это то же самое, что и а? И а идет перед Б или после я? Это не теоретические вопросы, ответ на них зависит от настройки базы данных.
При лексикографическом порядке сортировки А считается идентичным а, и такое поведение является обычным для большинства систем управления базами данных. Однако в некоторых СУБД администратор может при необходимости это поведение изменить. (Это может оказаться полезным, если в вашей базе данных содержится много символов из другого языка.) Суть в том, что если вам понадобится альтернативный порядок сортировки, его нельзя будет достичь посредством обычного предложения ORDER BY. Вам придется обратиться к администратору базы данных.