- ORDER BY je klauzula v SQL, ktorá sa používa s dotazom SELECT na načítanie záznamov z tabuľky vo vzostupnom alebo zostupnom poradí.
- Rovnako ako triedime celé číslo a hodnoty reťazca uložené v stĺpci tabuliek, podobne môžeme triediť dátumy uložené v stĺpci SQL tabuľky.
- Všetky záznamy budú štandardne zoradené vo vzostupnom poradí. Na zoradenie záznamov v zostupnom poradí sa používa kľúčové slovo DESC.
Pozrime sa na niekoľko praktických príkladov, aby sme tento koncept lepšie pochopili. Na písanie všetkých dopytov použijeme databázu MySQL.
Uvažujme, že sme vytvorili tabuľku s názvom zamestnanci v databáze MySQL s nasledujúcimi údajmi:
ID | názov | Plat | Dátum pripojenia | nar |
---|---|---|---|---|
1 | Rohit Viac | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34 000 | 1. 1. 2021 | 15.05.1990 19:10:00 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 1983-02-20 12:18:45 |
4 | Anant Desai | 59 000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
Príklad 1:
Napíšte dotaz na zobrazenie všetkých podrobností o zamestnancoch usporiadaných vzostupne podľa dátumu narodenia.
Dopyt:
mysql sa nerovná
mysql> SELECT *FROM employees ORDER BY DOB;
Keďže sme chceli záznamy zoradiť vzostupne podľa dátumu narodenia zamestnancov, tak sme na stĺpec 'DOB' aplikovali doložku ORDER BY.
Získate nasledujúci výstup:
ID | názov | Plat | Dátum pripojenia | nar |
---|---|---|---|---|
4 | Anant Desai | 59 000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 1983-02-20 12:18:45 |
2 | Kunal Mohit | 34 000 | 1. 1. 2021 | 15.05.1990 19:10:00 |
1 | Rohit Viac | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
5 | Krishna Sharma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
Výsledky získané z vyššie uvedeného dotazu ukazujú, že záznamy sú zobrazené podľa vzostupného poradia DOB.
Príklad 2:
Napíšte dotaz na zobrazenie všetkých podrobností o zamestnancoch usporiadaných v zostupnom poradí podľa dátumov ich nástupu.
Dopyt:
mysql> SELECT *FROM employees ORDER BY Joining_Date DESC;
Keďže sme chceli zoradiť záznamy v zostupnom poradí podľa dátumu nástupu zamestnancov, aplikovali sme klauzulu ORDER BY s kľúčovým slovom DESC na stĺpec 'Dátum_nástupu'.
Získate nasledujúci výstup:
ID | názov | Plat | Dátum pripojenia | nar |
---|---|---|---|---|
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
2 | Kunal Mohit | 34 000 | 1. 1. 2021 | 15.05.1990 19:10:00 |
1 | Rohit Viac | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
4 | Anant Desai | 59 000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 1983-02-20 12:18:45 |
5 | Krishna Sharma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
Výsledky získané z vyššie uvedeného dotazu ukazujú, že záznamy sú zobrazené v zostupnom poradí dátumov spojenia.
Príklad 3:
Napíšte dotaz na zobrazenie všetkých podrobností o zamestnancoch usporiadaných vzostupne podľa roku narodenia.
Dopyt:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%Y') AS Year_of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%Y');
Keďže sme chceli záznamy zoradiť vzostupne podľa roku narodenia zamestnancov, tak sme aplikovali klauzulu ORDER BY. Funkcia DATE_FORMAT () sa aplikuje na stĺpec DOB s parametrom '%Y' na extrahovanie iba roku z 'DOB'.
Získate nasledujúci výstup:
ID | názov | Plat | Dátum pripojenia | Rok narodenia |
---|---|---|---|---|
4 | Anant Desai | 59 000 | 2018-08-27 | 1978 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 1983 |
2 | Kunal Mohit | 34 000 | 1. 1. 2021 | 1990 |
1 | Rohit Viac | 50 000 | 2020-02-08 | 1991 |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 1998 |
5 | Krishna Sharma | 48 000 | 2010-10-23 | 1999 |
Výsledky získané z vyššie uvedeného dotazu ukazujú, že záznamy sa zobrazujú vzostupne podľa roku narodenia zamestnanca.
Príklad 4:
Napíšte dotaz na zobrazenie všetkých podrobností o zamestnancoch usporiadaných v zostupnom poradí podľa hodiny narodenia.
Dopyt:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%H') AS Hour_Of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%H') DESC;
Keďže sme chceli záznamy triediť v zostupnom poradí podľa hodiny narodenia zamestnancov, aplikovali sme doložku ORDER BY s kľúčovým slovom DESC. Funkcia DATE_FORMAT () sa aplikuje na stĺpec DOB s parametrom '%H' na extrahovanie iba hodiny narodenia zo stĺpca 'DOB'.
Získate nasledujúci výstup:
ID | názov | Plat | Dátum pripojenia | Hour_Of_Birth |
---|---|---|---|---|
2 | Kunal Mohit | 34 000 | 1. 1. 2021 | 19 |
1 | Rohit Viac | 50 000 | 2020-02-08 | 18 |
4 | Anant Desai | 59 000 | 2018-08-27 | pätnásť |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 13 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 12 |
5 | Krishna Sharma | 48 000 | 2010-10-23 | 02 |
Výsledky získané z vyššie uvedeného dotazu ukazujú, že záznamy sú zobrazené v zostupnom poradí podľa hodiny narodenia zamestnanca.
Príklad 5:
Napíšte dotaz na zobrazenie všetkých podrobností o zamestnancoch usporiadaných vzostupne podľa roku ich nástupu.
Dopyt:
mysql> SELECT ID, Name, Salary, DOB, DATE_FORMAT (Joining_Date, '%Y') AS Year_Of_Joining FROM employees ORDER BY DATE_FORMAT (Joining_Date, '%Y');
Keďže sme chceli záznamy zoradiť vzostupne podľa pripájaného roku zamestnancov, aplikovali sme doložku ORDER BY. Funkcia DATE_FORMAT () sa aplikuje na stĺpec Joining_Date s parametrom '%Y' na extrahovanie iba roku z 'Joining_Date'.
Získate nasledujúci výstup:
ID | názov | Plat | Year_of_Joining | nar |
---|---|---|---|---|
5 | Krishna Sharma | 48 000 | 2010 | 1999-03-21 02:14:56 |
3 | Saurabh Jha | 61 000 | 2015 | 1983-02-20 12:18:45 |
4 | Anant Desai | 59 000 | 2018 | 1978-06-29 15:45:13 |
1 | Rohit Viac | 50 000 | 2020 | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34 000 | 2021 | 15.05.1990 19:10:00 |
6 | Bhavesh Jain | 37 000 | 2021 | 1998-08-02 13:00:01 |
Výsledky získané z vyššie uvedeného dotazu ukazujú, že záznamy sa zobrazujú podľa vzostupného poradia roku nástupu zamestnancov.
Príklad 6:
Napíšte dotaz na zobrazenie všetkých podrobností o zamestnancoch usporiadaných v zostupnom poradí podľa dňa nástupu zamestnancov.
Dopyt:
mysql> SELECT ID, Name, Salary, DAY (Joining_Date) AS Day_Of_Joining, DOB FROM employees ORDER BY DAY (Joining_Date) DESC;
Keďže sme chceli zoradiť záznamy v zostupnom poradí podľa dňa nástupu zamestnancov, aplikovali sme klauzulu ORDER BY s kľúčovým slovom DESC. Funkcia DAY () sa aplikuje na stĺpec 'Dátum_pripojenia' na extrahovanie iba dňa pripojenia z Dátum_pripojenia.
Získate nasledujúci výstup:
ID | názov | Plat | Day_of_Joining | nar |
---|---|---|---|---|
4 | Anant Desai | 59 000 | 27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48 000 | 23 | 1999-03-21 02:14:56 |
1 | Rohit Viac | 50 000 | 8 | 1991-01-28 18:06:08 |
6 | Bhavesh Jain | 37 000 | 3 | 1998-08-02 13:00:01 |
2 | Kunal Mohit | 34 000 | 1 | 15.05.1990 19:10:00 |
3 | Saurabh Jha | 61 000 | 1 | 1983-02-20 12:18:45 |
Výsledky získané z vyššie uvedeného dotazu ukazujú, že záznamy sú zobrazené v zostupnom poradí podľa dňa nástupu zamestnancov.
Príklad 7:
Napíšte dotaz na zobrazenie všetkých podrobností o zamestnancoch usporiadaných vzostupne podľa dátumu narodenia zamestnancov.
Dopyt:
mysql> SELECT ID, Name, Salary, Joining_Date, DAY (DOB) AS Day_Of_Birth FROM employees ORDER BY DAY (DOB);
Keďže sme chceli záznamy zoradiť vzostupne podľa dňa narodenia zamestnancov, tak sme aplikovali doložku ORDER BY. Funkcia DAY () sa aplikuje na stĺpec 'DOB' na extrahovanie iba dňa narodenia z DOB.
Získate nasledujúci výstup:
ID | názov | Plat | Year_of_Joining | Day_of_Birth |
---|---|---|---|---|
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 2 |
2 | Kunal Mohit | 34 000 | 1. 1. 2021 | pätnásť |
3 | Saurabh Jha | 61 000 | 2015-05-01 | dvadsať |
5 | Krishna Sharma | 48 000 | 2010-10-23 | dvadsaťjeden |
1 | Rohit Viac | 50 000 | 2020-02-08 | 28 |
4 | Anant Desai | 59 000 | 2018-08-27 | 29 |
Výsledky získané z vyššie uvedeného dotazu ukazujú, že záznamy sú zobrazené vzostupne podľa dátumu narodenia zamestnanca.
Príklad 8:
Napíšte dotaz na zobrazenie všetkých podrobností o zamestnancoch usporiadaných vzostupne podľa mesiaca narodenia zamestnanca.
Dopyt:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB);
ID | názov | Plat | Dátum pripojenia | nar |
---|---|---|---|---|
1 | Rohit Viac | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 1983-02-20 12:18:45 |
5 | Krishna Sharma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
2 | Kunal Mohit | 34 000 | 1. 1. 2021 | 15.05.1990 19:10:00 |
4 | Anant Desai | 59 000 | 2018-08-27 | 1978-06-29 15:45:13 |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
Výsledky získané z vyššie uvedeného dotazu ukazujú, že záznamy sa zobrazujú vzostupne podľa mesiaca narodenia zamestnanca.
Príklad 9:
Napíšte dotaz na zobrazenie všetkých podrobností o zamestnancoch usporiadaných vzostupne podľa mesiaca, v ktorom zamestnanec nastúpil.
Dopyt:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (Joining_Date);
Keďže sme chceli záznamy zoradiť vzostupne podľa pripájajúceho sa mesiaca zamestnancov, aplikovali sme doložku ORDER BY. Funkcia MONTH () sa aplikuje na stĺpec 'Dátum_pripojenia' na extrahovanie iba mesiaca pripájania z Dátum_pristúpenia.
Získate nasledujúci výstup:
ID | názov | Plat | Dátum pripojenia | nar |
---|---|---|---|---|
2 | Kunal Mohit | 34 000 | 1. 1. 2021 | 15.05.1990 19:10:00 |
1 | Rohit Viac | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 1983-02-20 12:18:45 |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
4 | Anant Desai | 59 000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
Výsledky získané z vyššie uvedeného dotazu ukazujú, že záznamy sa zobrazujú vzostupne podľa mesiaca nástupu zamestnanca.