- Kdykoli chceme seřadit záznamy podle sloupců uložených v tabulkách SQL databáze, pak zvažujeme použití klauzule ORDER BY v SQL.
- Klauzule ORDER BY v SQL nám pomáhá třídit záznamy na základě konkrétního sloupce tabulky. To znamená, že zpočátku budou seřazeny všechny hodnoty uložené ve sloupci, na který aplikujeme klauzuli ORDER BY. Poté se odpovídající hodnoty sloupců zobrazí ve stejném pořadí, ve kterém jsou hodnoty, které jsme získali v předchozím kroku.
- Pomocí klauzule ORDER BY můžeme záznamy seřadit vzestupně nebo sestupně podle našich požadavků. Záznamy budou seřazeny ve vzestupném pořadí, kdykoli se použije klíčové slovo ASC s klauzulí ORDER by. Klíčové slovo DESC seřadí záznamy v sestupném pořadí . Pokud za sloupcem není zadáno žádné klíčové slovo, podle kterého máme záznamy řadit, pak se v takovém případě řazení provede standardně vzestupně.
Před napsáním dotazů na třídění záznamů se seznamme se syntaxí.
Syntaxe pro řazení záznamů v sestupném pořadí:
SELECT ColumnName1,…,ColumnNameN FROM TableName ORDER BY ColumnNameDESC;
Podívejme se na toto téma více pomocí příkladů. Pro psaní dotazů v příkladech použijeme databázi MySQL.
Uvažujme, že máme tabulku zákazníků s následujícími záznamy:
ID | NÁZEV | STÁŘÍ | ADRESA | PLAT |
---|---|---|---|---|
1 | Himani Gupta | dvacet jedna | Modi Nagar | 22 000 |
2 | Šiva Tiwari | 22 | Bhópál | 21 000 |
3 | Ajeet Bhargav | Čtyři pět | Meerut | 65 000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26 000 |
5 | Balwant Singh | Čtyři pět | Váránasí | 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 |
Příklad 1:
Napište dotaz pro seřazení záznamů v sestupném pořadí podle jmen zákazníků uložených v tabulce Zákazníci.
Dotaz:
mysql> SELECT *FROM customers ORDER BY Name DESC;
Zde v dotazu SELECT se na sloupec 'Název' použije klauzule ORDER BY, aby se záznamy seřadily. Klíčové slovo DESC seřadí záznamy v sestupném pořadí.
Získáte následující výstup:
ID | NÁZEV | STÁŘÍ | ADRESA | PLAT |
---|---|---|---|---|
2 | Šiva 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 | dvacet jedna | Modi Nagar | 22 000 |
5 | Balwant Singh | Čtyři pět | Váránasí | 36 000 |
3 | Ajeet Bhargav | Čtyři pět | Meerut | 65 000 |
9 | Akash Yadav | 32 | Bombaj | 43500 |
Všechny záznamy v tabulce zákazníků jsou zobrazeny v sestupném pořadí podle jména zákazníka.
Příklad 2:
Napište dotaz pro seřazení záznamů v sestupném pořadí podle adres uložených v tabulce zákazníků.
Dotaz:
mysql> SELECT *FROM customers ORDER BY Address DESC;
Zde v dotazu SELECT se na sloupec 'Adresa' použije klauzule ORDER BY, aby se záznamy seřadily. Klíčové slovo DESC seřadí záznamy v sestupném pořadí.
Získáte následující výstup:
ID | NÁZEV | STÁŘÍ | ADRESA | PLAT |
---|---|---|---|---|
5 | Balwant Singh | Čtyři pět | Váránasí | 36 000 |
8 | Neeru Sharma | 29 | Pune | 40 000 |
9 | Akash Yadav | 32 | Bombaj | 43500 |
1 | Himani Gupta | dvacet jedna | Modi Nagar | 22 000 |
3 | Ajeet Bhargav | Čtyři pět | Meerut | 65 000 |
6 | Mahesh Sharma | 26 | Mathura | 22 000 |
2 | Šiva 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šechny záznamy v tabulce zákazníků jsou zobrazeny v sestupném pořadí podle adresy zákazníka.
javascriptový víceřádkový řetězec
Příklad 3:
Napište dotaz pro seřazení záznamů v sestupném pořadí podle platu zákazníka uloženého v tabulce zákazníků.
Dotaz:
čtvrtletí v podnikání
mysql> SELECT *FROM customers ORDER BY Salary DESC;
Zde v dotazu SELECT se na sloupec 'Plat' použije klauzule ORDER BY, aby se záznamy seřadily. Klíčové slovo DESC seřadí záznamy v sestupném pořadí.
Získáte následující výstup:
ID | název | Stáří | Adresa | Plat |
---|---|---|---|---|
10 | Sahil Sheikh | 35 | Aurangabad | 68800 |
3 | Ajeet Bhargav | Čtyři pět | 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 | Čtyři pět | Váránasí | 36 000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26 000 |
6 | Mahesh Sharma | 26 | Mathura | 22 000 |
1 | Himani Gupta | dvacet jedna | Modi Nagar | 22 000 |
2 | Šiva Tiwari | 22 | Bhópál | 21 000 |
Všechny záznamy v tabulce zákazníků jsou zobrazeny v sestupném pořadí podle platu zákazníka.
Příklad 4:
Napište dotaz pro seřazení záznamů v sestupném pořadí podle věku zákazníka uloženého v tabulce zákazníků.
Dotaz:
mysql> SELECT *FROM customers ORDER BY Age DESC;
Zde v dotazu SELECT se na sloupec 'Věk' použije klauzule ORDER BY, aby se záznamy seřadily. Klíčové slovo DESC seřadí záznamy v sestupném pořadí.
Získáte následující výstup:
ID | název | Stáří | Adresa | Plat |
---|---|---|---|---|
3 | Ajeet Bhargav | Čtyři pět | Meerut | 65 000 |
5 | Balwant Singh | Čtyři pět | Váránasí | 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 | Šiva Tiwari | 22 | Bhópál | 21 000 |
1 | Himani Gupta | dvacet jedna | Modi Nagar | 22 000 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38 000 |
Všechny záznamy v tabulce zákazníků jsou zobrazeny v sestupném pořadí podle věku zákazníka.
Uvažujme, že máme další tabulku s názvem agenti s následujícími záznamy:
POMOC | název | Pracovní oblast | Procent_profitu | 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 Více | Pune | 3 | 8894236789 | 35 500 |
5 | Pallavi Singh | Dillí | 4 | 7798092341 | 38700 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
7 | řekla Shweta | Čandígarh | 6 | 8898786453 | 31670 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
9 | Anushka Tripathi | Na prstech | 9 | 8909124326 | 38 000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
Příklad 1:
Napište dotaz pro seřazení záznamů v sestupném pořadí podle jmen agentů uložených v tabulce agentů.
Dotaz:
mysql> SELECT *FROM agents ORDER BY Name DESC;
Zde v dotazu SELECT se na sloupec 'Název' použije klauzule ORDER BY, aby se záznamy seřadily. Klíčové slovo DESC seřadí záznamy v sestupném pořadí.
Získáte následující výstup:
POMOC | název | Pracovní oblast | Procent_profitu | Kontaktní číslo | Plat |
---|---|---|---|---|---|
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
7 | řekla Shweta | Čandígarh | 6 | 8898786453 | 31670 |
4 | Shivani Více | Pune | 3 | 8894236789 | 35 500 |
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 prstech | 9 | 8909124326 | 38 000 |
Všechny záznamy v tabulce agentů jsou zobrazeny v sestupném pořadí podle jména agenta.
Příklad 2:
Napište dotaz pro seřazení záznamů v sestupném pořadí podle platu agenta uloženého v tabulce agentů.
Dotaz:
mysql> SELECT *FROM agents ORDER BY Salary DESC;
Zde v dotazu SELECT se na sloupec 'Plat' použije klauzule ORDER BY, aby se záznamy seřadily. Klíčové slovo DESC seřadí záznamy v sestupném pořadí.
Získáte následující výstup:
POMOC | název | Pracovní oblast | Procent_profitu | 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 prstech | 9 | 8909124326 | 38 000 |
4 | Shivani Více | Pune | 3 | 8894236789 | 35 500 |
7 | řekla 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šechny záznamy v tabulce agentů jsou zobrazeny v sestupném pořadí podle platu agenta.
python převádí bajty na řetězec
Příklad 3:
Napište dotaz pro seřazení záznamů v sestupném pořadí podle pracovní oblasti agenta uložené v tabulce agentů.
Dotaz:
mysql> SELECT *FROM agents ORDER BY WorkArea DESC;
Zde v dotazu SELECT se na sloupec 'WorkArea' použije klauzule ORDER BY, aby se záznamy seřadily. Klíčové slovo DESC seřadí záznamy v sestupném pořadí.
Získáte následující výstup:
POMOC | název | Pracovní oblast | Procent_profitu | Kontaktní číslo | Plat |
---|---|---|---|---|---|
9 | Anushka Tripathi | Na prstech | 9 | 8909124326 | 38 000 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
4 | Shivani Více | 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 | řekla Shweta | Čandígarh | 6 | 8898786453 | 31670 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43 000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
Všechny záznamy v tabulce agentů jsou zobrazeny v sestupném pořadí podle pracovní oblasti agenta.
Příklad 4:
Napište dotaz pro seřazení záznamů v sestupném pořadí podle procenta zisku agenta uloženého v tabulce agentů.
Dotaz:
mysql> SELECT *FROM agents ORDER BY Profit_Percent DESC;
Zde v dotazu SELECT se na sloupec 'Profit_Percent' použije klauzule ORDER BY, aby se záznamy seřadily. Klíčové slovo DESC seřadí záznamy v sestupném pořadí.
Získáte následující výstup:
POMOC | název | Pracovní oblast | Procent_profitu | Kontaktní číslo | Plat |
---|---|---|---|---|---|
9 | Anushka Tripathi | Na prstech | 9 | 8909124326 | 38 000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
7 | řekla Shweta | Čandígarh | 6 | 8898786453 | 31670 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25 000 |
5 | Pallavi Singh | Dillí | 4 | 7798092341 | 38700 |
4 | Shivani Více | Pune | 3 | 8894236789 | 35 500 |
3 | Prachi Desai | Bombaj | 2 | 9056123432 | 60 000 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43 000 |
Všechny záznamy v tabulce agentů jsou zobrazeny v sestupném pořadí podle procenta zisku agenta.