- Всеки път, когато искаме да сортираме записите въз основа на колоните, съхранени в таблиците на SQL базата данни, тогава обмисляме използването на клаузата ORDER BY в SQL.
- Клаузата ORDER BY в SQL ни помага да сортираме записите въз основа на конкретната колона на таблица. Това означава, че първоначално всички стойности, съхранени в колоната, към която прилагаме клаузата ORDER BY, ще бъдат сортирани. След това съответните стойности на колоните ще бъдат показани в същата последователност, в която са получени стойностите в предишната стъпка.
- Използвайки клаузата ORDER BY, можем да сортираме записите във възходящ или низходящ ред според нашите изисквания. Записите ще бъдат сортирани във възходящ ред, когато ключовата дума ASC се използва с клаузата ORDER by. Ключовата дума DESC ще сортира записите в низходящ ред . Ако след колоната, на базата на която трябва да сортираме записите, не е посочена ключова дума, тогава в този случай сортирането ще се извърши по подразбиране във възходящ ред.
Преди да напишем заявките за сортиране на записите, нека разберем синтаксиса.
Синтаксис за сортиране на записите в низходящ ред:
SELECT ColumnName1,…,ColumnNameN FROM TableName ORDER BY ColumnNameDESC;
Нека разгледаме повече по тази тема с помощта на примери. Ще използваме базата данни MySQL за писане на заявките в примери.
Помислете, че имаме таблица с клиенти със следните записи:
документ за самоличност | ИМЕ | ВЪЗРАСТ | АДРЕС | ЗАПЛАТА |
---|---|---|---|---|
1 | Химани Гупта | двадесет и едно | Моди Нагар | 22000 |
2 | Шива Тивари | 22 | Бопал | 21000 |
3 | Аджит Бхаргав | Четири пет | Мирут | 65 000 |
4 | Ритеш Ядав | 36 | Азамгарх | 26000 |
5 | Балвант Сингх | Четири пет | Варанаси | 36000 |
6 | Махеш Шарма | 26 | Матхура | 22000 |
7 | Рохит Шривастава | 19 | Ахмедабад | 38 000 |
8 | Нееру Шарма | 29 | Пуна | 40 000 |
9 | Акаш Ядав | 32 | Мумбай | 43500 |
10 | Сахил Шейх | 35 | Аурангабад | 68800 |
Пример 1:
Напишете заявка за сортиране на записите в низходящ ред на имената на клиентите, съхранени в таблицата клиенти.
Запитване:
mysql> SELECT *FROM customers ORDER BY Name DESC;
Тук, в заявка SELECT, клауза ORDER BY се прилага към колоната „Име“ за сортиране на записите. Ключовата дума DESC ще сортира записите в низходящ ред.
Ще получите следния изход:
документ за самоличност | ИМЕ | ВЪЗРАСТ | АДРЕС | ЗАПЛАТА |
---|---|---|---|---|
2 | Шива Тивари | 22 | Бопал | 21000 |
10 | Сахил Шейх | 35 | Аурангабад | 68800 |
7 | Рохит Шривастава | 19 | Ахмедабад | 38 000 |
4 | Ритеш Ядав | 36 | Азамгарх | 26000 |
8 | Нееру Шарма | 29 | Пуна | 40 000 |
6 | Махеш Шарма | 26 | Матхура | 22000 |
1 | Химани Гупта | двадесет и едно | Моди Нагар | 22000 |
5 | Балвант Сингх | Четири пет | Варанаси | 36000 |
3 | Аджит Бхаргав | Четири пет | Мирут | 65 000 |
9 | Акаш Ядав | 32 | Мумбай | 43500 |
Всички записи в таблицата с клиенти се показват в низходящ ред на името на клиента.
Пример 2:
Напишете заявка за сортиране на записите в низходящ ред на адресите, съхранени в таблицата на клиентите.
Запитване:
mysql> SELECT *FROM customers ORDER BY Address DESC;
Тук, в заявка SELECT, клауза ORDER BY се прилага към колоната „Адрес“ за сортиране на записите. Ключовата дума DESC ще сортира записите в низходящ ред.
Ще получите следния изход:
документ за самоличност | ИМЕ | ВЪЗРАСТ | АДРЕС | ЗАПЛАТА |
---|---|---|---|---|
5 | Балвант Сингх | Четири пет | Варанаси | 36000 |
8 | Нееру Шарма | 29 | Пуна | 40 000 |
9 | Акаш Ядав | 32 | Мумбай | 43500 |
1 | Химани Гупта | двадесет и едно | Моди Нагар | 22000 |
3 | Аджит Бхаргав | Четири пет | Мирут | 65 000 |
6 | Махеш Шарма | 26 | Матхура | 22000 |
2 | Шива Тивари | 22 | Бопал | 21000 |
4 | Ритеш Ядав | 36 | Азамгарх | 26000 |
10 | Сахил Шейх | 35 | Аурангабад | 68800 |
7 | Рохит Шривастава | 19 | Ахмедабад | 38 000 |
Всички записи в таблицата с клиенти се показват в низходящ ред на адреса на клиента.
Пример 3:
Напишете заявка за сортиране на записите в низходящ ред на клиентската заплата, съхранена в таблицата клиенти.
Запитване:
mysql> SELECT *FROM customers ORDER BY Salary DESC;
Тук, в заявка SELECT, клауза ORDER BY се прилага към колоната „Заплата“, за да сортирате записите. Ключовата дума DESC ще сортира записите в низходящ ред.
Ще получите следния изход:
документ за самоличност | Име | възраст | Адрес | Заплата |
---|---|---|---|---|
10 | Сахил Шейх | 35 | Аурангабад | 68800 |
3 | Аджит Бхаргав | Четири пет | Мирут | 65 000 |
9 | Акаш Ядав | 32 | Мумбай | 43500 |
8 | Нееру Шарма | 29 | Пуна | 40 000 |
7 | Рохит Шривастава | 19 | Ахмедабад | 38 000 |
5 | Балвант Сингх | Четири пет | Варанаси | 36000 |
4 | Ритеш Ядав | 36 | Азамгарх | 26000 |
6 | Махеш Шарма | 26 | Матхура | 22000 |
1 | Химани Гупта | двадесет и едно | Моди Нагар | 22000 |
2 | Шива Тивари | 22 | Бопал | 21000 |
Всички записи в таблицата с клиенти се показват в низходящ ред на заплатата на клиента.
Пример 4:
Напишете заявка за сортиране на записите в низходящ ред на възрастта на клиента, съхранени в таблицата клиенти.
java коментари
Запитване:
mysql> SELECT *FROM customers ORDER BY Age DESC;
Тук, в заявка SELECT, клауза ORDER BY се прилага към колоната „Възраст“ за сортиране на записите. Ключовата дума DESC ще сортира записите в низходящ ред.
Ще получите следния изход:
документ за самоличност | Име | възраст | Адрес | Заплата |
---|---|---|---|---|
3 | Аджит Бхаргав | Четири пет | Мирут | 65 000 |
5 | Балвант Сингх | Четири пет | Варанаси | 36000 |
4 | Ритеш Ядав | 36 | Азамгарх | 26000 |
10 | Сахил Шейх | 35 | Аурангабад | 68800 |
9 | Акаш Ядав | 32 | Мумбай | 43500 |
8 | Нееру Шарма | 29 | Пуна | 40 000 |
6 | Махеш Шарма | 26 | Матхура | 22000 |
2 | Шива Тивари | 22 | Бопал | 21000 |
1 | Химани Гупта | двадесет и едно | Моди Нагар | 22000 |
7 | Рохит Шривастава | 19 | Ахмедабад | 38 000 |
Всички записи в таблицата с клиенти се показват в низходящ ред според възрастта на клиента.
Помислете, че имаме друга таблица с име agents със следните записи:
ПОМОЩ | Име | Работна среда | Печалба_Процент | Номер за контакт | Заплата |
---|---|---|---|---|---|
1 | Гурпреет Сингх | Бангалор | 1 | 9989675432 | 43000 |
2 | Сакши Кумари | Ченай | 5 | 8190567342 | 25 000 |
3 | Прачи Десай | Мумбай | 2 | 9056123432 | 60 000 |
4 | Шивани Море | Пуна | 3 | 8894236789 | 35500 |
5 | Палави Сингх | Делхи | 4 | 7798092341 | 38700 |
6 | Рохини Кулкарни | Амбала | 8 | 7890945612 | 25670 |
7 | - каза Швета | Чандигарх | 6 | 8898786453 | 31670 |
8 | Сонакши Тивари | Удайпур | 2 | 9809453421 | 25050 |
9 | Анушка Трипати | На пръстите си | 9 | 8909124326 | 38 000 |
10 | Девика Шарма | Гоа | 7 | 7864523145 | 44050 |
Пример 1:
нередно преминаване на двоично дърво
Напишете заявка за сортиране на записите в низходящ ред на имената на агентите, съхранени в таблицата на агентите.
Запитване:
mysql> SELECT *FROM agents ORDER BY Name DESC;
Тук, в заявка SELECT, клауза ORDER BY се прилага към колоната „Име“ за сортиране на записите. Ключовата дума DESC ще сортира записите в низходящ ред.
Ще получите следния изход:
ПОМОЩ | Име | Работна среда | Печалба_Процент | Номер за контакт | Заплата |
---|---|---|---|---|---|
8 | Сонакши Тивари | Удайпур | 2 | 9809453421 | 25050 |
7 | - каза Швета | Чандигарх | 6 | 8898786453 | 31670 |
4 | Шивани Море | Пуна | 3 | 8894236789 | 35500 |
2 | Сакши Кумари | Ченай | 5 | 8190567342 | 25 000 |
6 | Рохини Кулкарни | Амбала | 8 | 7890945612 | 25670 |
3 | Прачи Десай | Мумбай | 2 | 9056123432 | 60 000 |
5 | Палави Сингх | Делхи | 4 | 7798092341 | 38700 |
1 | Гурпреет Сингх | Бангалор | 1 | 9989675432 | 43000 |
10 | Девика Шарма | Гоа | 7 | 7864523145 | 44050 |
9 | Анушка Трипати | На пръстите си | 9 | 8909124326 | 38 000 |
Всички записи в таблицата на агентите се показват в низходящ ред на името на агента.
Пример 2:
Напишете заявка за сортиране на записите в низходящ ред на заплатата на агента, съхранена в таблицата на агентите.
Запитване:
mysql> SELECT *FROM agents ORDER BY Salary DESC;
Тук, в заявка SELECT, клауза ORDER BY се прилага към колоната „Заплата“, за да сортирате записите. Ключовата дума DESC ще сортира записите в низходящ ред.
Ще получите следния изход:
ПОМОЩ | Име | Работна среда | Печалба_Процент | Номер за контакт | Заплата |
---|---|---|---|---|---|
3 | Прачи Десай | Мумбай | 2 | 9056123432 | 60 000 |
10 | Девика Шарма | Гоа | 7 | 7864523145 | 44050 |
1 | Гурпреет Сингх | Бангалор | 1 | 9989675432 | 43000 |
5 | Палави Сингх | Делхи | 4 | 7798092341 | 38700 |
9 | Анушка Трипати | На пръстите си | 9 | 8909124326 | 38 000 |
4 | Шивани Море | Пуна | 3 | 8894236789 | 35500 |
7 | - каза Швета | Чандигарх | 6 | 8898786453 | 31670 |
6 | Рохини Кулкарни | Амбала | 8 | 7890945612 | 25670 |
8 | Сонакши Тивари | Удайпур | 2 | 9809453421 | 25050 |
2 | Сакши Кумари | Ченай | 5 | 8190567342 | 25 000 |
Всички записи в таблицата на агентите се показват в низходящ ред на заплатата на агента.
Пример 3:
Напишете заявка за сортиране на записите в низходящ ред на работната област на агента, съхранена в таблицата на агентите.
Запитване:
mysql> SELECT *FROM agents ORDER BY WorkArea DESC;
Тук, в заявка SELECT, клауза ORDER BY се прилага към колоната „WorkArea“ за сортиране на записите. Ключовата дума DESC ще сортира записите в низходящ ред.
Ще получите следния изход:
ПОМОЩ | Име | Работна среда | Печалба_Процент | Номер за контакт | Заплата |
---|---|---|---|---|---|
9 | Анушка Трипати | На пръстите си | 9 | 8909124326 | 38 000 |
8 | Сонакши Тивари | Удайпур | 2 | 9809453421 | 25050 |
4 | Шивани Море | Пуна | 3 | 8894236789 | 35500 |
3 | Прачи Десай | Мумбай | 2 | 9056123432 | 60 000 |
10 | Девика Шарма | Гоа | 7 | 7864523145 | 44050 |
5 | Палави Сингх | Делхи | 4 | 7798092341 | 38700 |
2 | Сакши Кумари | Ченай | 5 | 8190567342 | 25 000 |
7 | - каза Швета | Чандигарх | 6 | 8898786453 | 31670 |
1 | Гурпреет Сингх | Бангалор | 1 | 9989675432 | 43000 |
6 | Рохини Кулкарни | Амбала | 8 | 7890945612 | 25670 |
Всички записи в таблицата на агентите се показват в низходящ ред на работната област на агента.
Пример 4:
Напишете заявка за сортиране на записите в низходящ ред на процента печалба на агента, съхранен в таблицата на агентите.
Запитване:
mysql> SELECT *FROM agents ORDER BY Profit_Percent DESC;
Тук, в заявка SELECT, клауза ORDER BY се прилага към колоната „Profit_Percent“ за сортиране на записите. Ключовата дума DESC ще сортира записите в низходящ ред.
Ще получите следния изход:
ПОМОЩ | Име | Работна среда | Печалба_Процент | Номер за контакт | Заплата |
---|---|---|---|---|---|
9 | Анушка Трипати | На пръстите си | 9 | 8909124326 | 38 000 |
6 | Рохини Кулкарни | Амбала | 8 | 7890945612 | 25670 |
10 | Девика Шарма | Гоа | 7 | 7864523145 | 44050 |
7 | - каза Швета | Чандигарх | 6 | 8898786453 | 31670 |
2 | Сакши Кумари | Ченай | 5 | 8190567342 | 25 000 |
5 | Палави Сингх | Делхи | 4 | 7798092341 | 38700 |
4 | Шивани Море | Пуна | 3 | 8894236789 | 35500 |
3 | Прачи Десай | Мумбай | 2 | 9056123432 | 60 000 |
8 | Сонакши Тивари | Удайпур | 2 | 9809453421 | 25050 |
1 | Гурпреет Сингх | Бангалор | 1 | 9989675432 | 43000 |
Всички записи в таблицата на агентите се показват в низходящ ред на процента печалба на агента.