- Kedykoľvek chceme zoradiť záznamy podľa stĺpcov uložených v tabuľkách SQL databázy, potom zvažujeme použitie klauzuly ORDER BY v SQL.
- Klauzula ORDER BY v SQL nám pomáha triediť záznamy na základe konkrétneho stĺpca tabuľky. To znamená, že na začiatku budú zoradené všetky hodnoty uložené v stĺpci, na ktorý aplikujeme klauzulu ORDER BY. Potom sa príslušné hodnoty stĺpcov zobrazia v rovnakom poradí, v akom sú hodnoty, ktoré sme získali v predchádzajúcom kroku.
- Pomocou klauzuly ORDER BY môžeme záznamy triediť vo vzostupnom alebo zostupnom poradí podľa našej požiadavky. Záznamy budú zoradené vo vzostupnom poradí vždy, keď sa kľúčové slovo ASC použije s klauzulou ORDER by. Kľúčové slovo DESC zoradí záznamy v zostupnom poradí . Ak za stĺpcom nie je zadané žiadne kľúčové slovo, podľa ktorého máme záznamy triediť, tak v takom prípade sa triedenie štandardne vykoná vo vzostupnom poradí.
Pred napísaním dotazov na triedenie záznamov pochopme syntax.
bublinové triedenie v algoritme
Syntax na zoradenie záznamov v zostupnom poradí:
SELECT ColumnName1,…,ColumnNameN FROM TableName ORDER BY ColumnNameDESC;
Preskúmajme túto tému viac pomocou príkladov. Na písanie dopytov v príkladoch použijeme databázu MySQL.
Predstavte si, že máme tabuľku zákazníkov s nasledujúcimi záznamami:
ID | NÁZOV | VEK | ADRESA | PLAT |
---|---|---|---|---|
1 | Himani Gupta | dvadsaťjeden | Modi Nagar | 22 000 |
2 | Shiva Tiwari | 22 | Bhópál | 21 000 |
3 | Ajeet Bhargav | Štyri | Meerut | 65 000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26 000 |
5 | Balwant Singh | Štyri | Varanasi | 36 000 |
6 | Mahesh Sharma | 26 | Mathura | 22 000 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38 000 |
8 | Neeru Sharma | 29 | Pune | 40 000 |
9 | Akash Yadav | 32 | Bombaj | 43500 |
10 | Sahil Sheikh | 35 | Aurangabad | 68800 |
Príklad 1:
Napíšte dotaz na zoradenie záznamov v zostupnom poradí podľa mien zákazníkov uložených v tabuľke zákazníkov.
Dopyt:
mysql> SELECT *FROM customers ORDER BY Name DESC;
Tu v dotaze SELECT sa na stĺpec „Názov“ použije klauzula ORDER BY na zoradenie záznamov. Kľúčové slovo DESC zoradí záznamy v zostupnom poradí.
Získate nasledujúci výstup:
ID | NÁZOV | VEK | ADRESA | PLAT |
---|---|---|---|---|
2 | Shiva Tiwari | 22 | Bhópál | 21 000 |
10 | Sahil Sheikh | 35 | Aurangabad | 68800 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38 000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26 000 |
8 | Neeru Sharma | 29 | Pune | 40 000 |
6 | Mahesh Sharma | 26 | Mathura | 22 000 |
1 | Himani Gupta | dvadsaťjeden | Modi Nagar | 22 000 |
5 | Balwant Singh | Štyri | Varanasi | 36 000 |
3 | Ajeet Bhargav | Štyri | Meerut | 65 000 |
9 | Akash Yadav | 32 | Bombaj | 43500 |
Všetky záznamy v tabuľke zákazníkov sú zobrazené v zostupnom poradí podľa mena zákazníka.
Príklad 2:
Napíšte dotaz na zoradenie záznamov v zostupnom poradí adries uložených v tabuľke Zákazníci.
Dopyt:
mysql> SELECT *FROM customers ORDER BY Address DESC;
Tu v dotaze SELECT sa na stĺpec „Adresa“ použije klauzula ORDER BY na zoradenie záznamov. Kľúčové slovo DESC zoradí záznamy v zostupnom poradí.
Získate nasledujúci výstup:
ID | NÁZOV | VEK | ADRESA | PLAT |
---|---|---|---|---|
5 | Balwant Singh | Štyri | Varanasi | 36 000 |
8 | Neeru Sharma | 29 | Pune | 40 000 |
9 | Akash Yadav | 32 | Bombaj | 43500 |
1 | Himani Gupta | dvadsaťjeden | Modi Nagar | 22 000 |
3 | Ajeet Bhargav | Štyri | Meerut | 65 000 |
6 | Mahesh Sharma | 26 | Mathura | 22 000 |
2 | Shiva Tiwari | 22 | Bhópál | 21 000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26 000 |
10 | Sahil Sheikh | 35 | Aurangabad | 68800 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38 000 |
Všetky záznamy v tabuľke zákazníkov sú zobrazené v zostupnom poradí podľa adresy zákazníka.
Príklad 3:
Napíšte dotaz na zoradenie záznamov v zostupnom poradí podľa mzdy zákazníka uloženej v tabuľke zákazníkov.
Dopyt:
mysql> SELECT *FROM customers ORDER BY Salary DESC;
Tu v dotaze SELECT sa na stĺpec „Plat“ použije klauzula ORDER BY na zoradenie záznamov. Kľúčové slovo DESC zoradí záznamy v zostupnom poradí.
logika prvého poriadku
Získate nasledujúci výstup:
ID | názov | Vek | Adresa | Plat |
---|---|---|---|---|
10 | Sahil Sheikh | 35 | Aurangabad | 68800 |
3 | Ajeet Bhargav | Štyri | Meerut | 65 000 |
9 | Akash Yadav | 32 | Bombaj | 43500 |
8 | Neeru Sharma | 29 | Pune | 40 000 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38 000 |
5 | Balwant Singh | Štyri | Varanasi | 36 000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26 000 |
6 | Mahesh Sharma | 26 | Mathura | 22 000 |
1 | Himani Gupta | dvadsaťjeden | Modi Nagar | 22 000 |
2 | Shiva Tiwari | 22 | Bhópál | 21 000 |
Všetky záznamy v tabuľke zákazníkov sú zobrazené v zostupnom poradí podľa platu zákazníka.
Príklad 4:
Napíšte dotaz na zoradenie záznamov v zostupnom poradí podľa veku zákazníka uloženého v tabuľke zákazníkov.
Dopyt:
mysql> SELECT *FROM customers ORDER BY Age DESC;
Tu v dotaze SELECT sa na stĺpec 'Vek' použije klauzula ORDER BY na zoradenie záznamov. Kľúčové slovo DESC zoradí záznamy v zostupnom poradí.
Získate nasledujúci výstup:
ID | názov | Vek | Adresa | Plat |
---|---|---|---|---|
3 | Ajeet Bhargav | Štyri | Meerut | 65 000 |
5 | Balwant Singh | Štyri | Varanasi | 36 000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26 000 |
10 | Sahil Sheikh | 35 | Aurangabad | 68800 |
9 | Akash Yadav | 32 | Bombaj | 43500 |
8 | Neeru Sharma | 29 | Pune | 40 000 |
6 | Mahesh Sharma | 26 | Mathura | 22 000 |
2 | Shiva Tiwari | 22 | Bhópál | 21 000 |
1 | Himani Gupta | dvadsaťjeden | Modi Nagar | 22 000 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38 000 |
Všetky záznamy v tabuľke zákazníkov sú zobrazené v zostupnom poradí podľa veku zákazníka.
Uvažujme, že máme ďalšiu tabuľku s názvom agenti s nasledujúcimi záznamami:
AID | názov | Pracovná oblasť | Profit_Percent | Kontaktné číslo | Plat |
---|---|---|---|---|---|
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43 000 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25 000 |
3 | Prachi Desai | Bombaj | 2 | 9056123432 | 60 000 |
4 | Shivani Viac | Pune | 3 | 8894236789 | 35500 |
5 | Pallavi Singh | Dillí | 4 | 7798092341 | 38700 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
7 | povedala Shweta | Čandígarh | 6 | 8898786453 | 31670 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
9 | Anushka Tripathi | Na prstoch | 9 | 8909124326 | 38 000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
Príklad 1:
obsadenie v sql
Napíšte dotaz na zoradenie záznamov v zostupnom poradí podľa mien agentov uložených v tabuľke agentov.
Dopyt:
mysql> SELECT *FROM agents ORDER BY Name DESC;
Tu v dotaze SELECT sa na stĺpec „Názov“ použije klauzula ORDER BY na zoradenie záznamov. Kľúčové slovo DESC zoradí záznamy v zostupnom poradí.
Získate nasledujúci výstup:
AID | názov | Pracovná oblasť | Profit_Percent | Kontaktné číslo | Plat |
---|---|---|---|---|---|
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
7 | povedala Shweta | Čandígarh | 6 | 8898786453 | 31670 |
4 | Shivani Viac | Pune | 3 | 8894236789 | 35500 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25 000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
3 | Prachi Desai | Bombaj | 2 | 9056123432 | 60 000 |
5 | Pallavi Singh | Dillí | 4 | 7798092341 | 38700 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43 000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
9 | Anushka Tripathi | Na prstoch | 9 | 8909124326 | 38 000 |
Všetky záznamy v tabuľke agentov sú zobrazené v zostupnom poradí podľa mena agenta.
Príklad 2:
Napíšte dotaz na zoradenie záznamov v zostupnom poradí podľa platu agenta uloženého v tabuľke agentov.
Dopyt:
mysql> SELECT *FROM agents ORDER BY Salary DESC;
Tu v dotaze SELECT sa na stĺpec „Plat“ použije klauzula ORDER BY na zoradenie záznamov. Kľúčové slovo DESC zoradí záznamy v zostupnom poradí.
Získate nasledujúci výstup:
AID | názov | Pracovná oblasť | Profit_Percent | Kontaktné číslo | Plat |
---|---|---|---|---|---|
3 | Prachi Desai | Bombaj | 2 | 9056123432 | 60 000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43 000 |
5 | Pallavi Singh | Dillí | 4 | 7798092341 | 38700 |
9 | Anushka Tripathi | Na prstoch | 9 | 8909124326 | 38 000 |
4 | Shivani Viac | Pune | 3 | 8894236789 | 35500 |
7 | povedala Shweta | Čandígarh | 6 | 8898786453 | 31670 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25 000 |
Všetky záznamy v tabuľke agentov sú zobrazené v zostupnom poradí podľa platu agenta.
Príklad 3:
Napíšte dotaz na zoradenie záznamov v zostupnom poradí pracovnej oblasti agenta uloženej v tabuľke agentov.
Dopyt:
mysql> SELECT *FROM agents ORDER BY WorkArea DESC;
Tu v dotaze SELECT sa na stĺpec „Pracovná oblasť“ použije klauzula ORDER BY na zoradenie záznamov. Kľúčové slovo DESC zoradí záznamy v zostupnom poradí.
Získate nasledujúci výstup:
AID | názov | Pracovná oblasť | Profit_Percent | Kontaktné číslo | Plat |
---|---|---|---|---|---|
9 | Anushka Tripathi | Na prstoch | 9 | 8909124326 | 38 000 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
4 | Shivani Viac | Pune | 3 | 8894236789 | 35500 |
3 | Prachi Desai | Bombaj | 2 | 9056123432 | 60 000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
5 | Pallavi Singh | Dillí | 4 | 7798092341 | 38700 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25 000 |
7 | povedala Shweta | Čandígarh | 6 | 8898786453 | 31670 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43 000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
Všetky záznamy v tabuľke agentov sú zobrazené v zostupnom poradí pracovnej oblasti agenta.
Príklad 4:
Napíšte dotaz na zoradenie záznamov v zostupnom poradí podľa percenta zisku agenta uloženého v tabuľke agentov.
binárny strom zásielkový prechod
Dopyt:
mysql> SELECT *FROM agents ORDER BY Profit_Percent DESC;
Tu v dotaze SELECT sa na stĺpec „Profit_Percent“ použije klauzula ORDER BY na zoradenie záznamov. Kľúčové slovo DESC zoradí záznamy v zostupnom poradí.
Získate nasledujúci výstup:
AID | názov | Pracovná oblasť | Profit_Percent | Kontaktné číslo | Plat |
---|---|---|---|---|---|
9 | Anushka Tripathi | Na prstoch | 9 | 8909124326 | 38 000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
7 | povedala Shweta | Čandígarh | 6 | 8898786453 | 31670 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25 000 |
5 | Pallavi Singh | Dillí | 4 | 7798092341 | 38700 |
4 | Shivani Viac | Pune | 3 | 8894236789 | 35500 |
3 | Prachi Desai | Bombaj | 2 | 9056123432 | 60 000 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43 000 |
Všetky záznamy v tabuľke agentov sú zobrazené v zostupnom poradí podľa percenta zisku agenta.