- ORDER BY je klauzule v SQL, která se používá s dotazem SELECT k načtení záznamů ve vzestupném nebo sestupném pořadí z tabulky.
- Stejně jako třídíme celočíselné a řetězcové hodnoty uložené ve sloupci tabulek, podobně můžeme třídit data uložená ve sloupci SQL tabulky.
- Všechny záznamy budou standardně seřazeny vzestupně. Pro řazení záznamů v sestupném pořadí se používá klíčové slovo DESC.
Podívejme se na několik praktických příkladů, abychom tomuto konceptu lépe porozuměli. Pro psaní všech dotazů použijeme databázi MySQL.
Uvažujme, že jsme vytvořili tabulku pojmenovanou jako zaměstnanci v databázi MySQL s následujícími údaji:
ID | název | Plat | Datum připojení | nar |
---|---|---|---|---|
1 | Rohit Více | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34 000 | 2021-01-01 | 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 | Krišna 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 |
Příklad 1:
Napište dotaz pro zobrazení všech podrobností o zaměstnancích uspořádaných vzestupně podle data narození.
Dotaz:
mysql> SELECT *FROM employees ORDER BY DOB;
Jelikož jsme chtěli záznamy seřadit vzestupně podle data narození zaměstnanců, tak jsme na sloupec 'DOB' aplikovali doložku ORDER BY.
Získáte následující výstup:
ID | název | Plat | Datum připojení | 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 | 2021-01-01 | 15.05.1990 19:10:00 |
1 | Rohit Více | 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 | Krišna Sharma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
Výsledky získané z výše uvedeného dotazu ukazují, že záznamy jsou zobrazeny podle vzestupného pořadí DOB.
Příklad 2:
Napište dotaz pro zobrazení všech podrobností o zaměstnancích uspořádaných v sestupném pořadí podle data jejich nástupu.
Dotaz:
mysql> SELECT *FROM employees ORDER BY Joining_Date DESC;
Protože jsme chtěli záznamy seřadit sestupně podle data nástupu zaměstnanců, aplikovali jsme klauzuli ORDER BY s klíčovým slovem DESC na sloupec 'Datum_nástupu'.
Získáte následující výstup:
ID | název | Plat | Datum připojení | nar |
---|---|---|---|---|
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
2 | Kunal Mohit | 34 000 | 2021-01-01 | 15.05.1990 19:10:00 |
1 | Rohit Více | 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 | Krišna Sharma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
Výsledky získané z výše uvedeného dotazu ukazují, že záznamy jsou zobrazeny podle sestupného pořadí dat spojení.
Příklad 3:
Napište dotaz pro zobrazení všech podrobností o zaměstnancích uspořádaných vzestupně podle roku jejich narození.
Dotaz:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%Y') AS Year_of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%Y');
Jelikož jsme chtěli záznamy seřadit vzestupně podle roku narození zaměstnanců, tak jsme aplikovali doložku ORDER BY. Funkce DATE_FORMAT () se aplikuje na sloupec DOB s parametrem '%Y' k extrahování pouze roku z 'DOB'.
java matematika náhodná
Získáte následující výstup:
ID | název | Plat | Datum připojení | Rok narození |
---|---|---|---|---|
4 | Anant Desai | 59 000 | 2018-08-27 | 1978 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 1983 |
2 | Kunal Mohit | 34 000 | 2021-01-01 | 1990 |
1 | Rohit Více | 50 000 | 2020-02-08 | 1991 |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 1998 |
5 | Krišna Sharma | 48 000 | 2010-10-23 | 1999 |
Výsledky získané z výše uvedeného dotazu ukazují, že záznamy jsou zobrazovány vzestupně podle roku narození zaměstnance.
Příklad 4:
Napište dotaz pro zobrazení všech podrobností o zaměstnancích uspořádaných v sestupném pořadí podle hodiny jejich narození.
Dotaz:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%H') AS Hour_Of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%H') DESC;
Protože jsme chtěli záznamy seřadit sestupně podle hodiny narození zaměstnanců, aplikovali jsme klauzuli ORDER BY s klíčovým slovem DESC. Funkce DATE_FORMAT () je aplikována na sloupec DOB s parametrem '%H' k extrahování pouze hodiny narození ze sloupce 'DOB'.
Získáte následující výstup:
ID | název | Plat | Datum připojení | Hour_of_birth |
---|---|---|---|---|
2 | Kunal Mohit | 34 000 | 2021-01-01 | 19 |
1 | Rohit Více | 50 000 | 2020-02-08 | 18 |
4 | Anant Desai | 59 000 | 2018-08-27 | patnáct |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 13 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 12 |
5 | Krišna Sharma | 48 000 | 2010-10-23 | 02 |
Výsledky získané z výše uvedeného dotazu ukazují, že záznamy jsou zobrazeny sestupně podle hodiny narození zaměstnance.
Příklad 5:
Napište dotaz pro zobrazení všech podrobností o zaměstnancích uspořádaných vzestupně podle roku jejich nástupu.
Dotaz:
java pole seřazeno
mysql> SELECT ID, Name, Salary, DOB, DATE_FORMAT (Joining_Date, '%Y') AS Year_Of_Joining FROM employees ORDER BY DATE_FORMAT (Joining_Date, '%Y');
Protože jsme chtěli záznamy seřadit vzestupně podle roku nástupu zaměstnanců, aplikovali jsme klauzuli ORDER BY. Funkce DATE_FORMAT () je aplikována na sloupec Joining_Date s parametrem '%Y' k extrahování pouze roku z 'Joining_Date'.
Získáte následující výstup:
ID | název | Plat | Year_of_Joining | nar |
---|---|---|---|---|
5 | Krišna 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 Více | 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 výše uvedeného dotazu ukazují, že záznamy jsou zobrazeny podle vzestupného pořadí roku nástupu zaměstnanců.
Příklad 6:
Napište dotaz pro zobrazení všech podrobností o zaměstnancích uspořádaných v sestupném pořadí podle data nástupu zaměstnanců.
Dotaz:
mysql> SELECT ID, Name, Salary, DAY (Joining_Date) AS Day_Of_Joining, DOB FROM employees ORDER BY DAY (Joining_Date) DESC;
Protože jsme chtěli záznamy seřadit sestupně podle data nástupu zaměstnanců, aplikovali jsme klauzuli ORDER BY s klíčovým slovem DESC. Funkce DAY () je aplikována na sloupec 'Joining_Date' k extrahování pouze dne připojení z Joining_Date.
Získáte následující výstup:
ID | název | Plat | Day_of_Joining | nar |
---|---|---|---|---|
4 | Anant Desai | 59 000 | 27 | 1978-06-29 15:45:13 |
5 | Krišna Sharma | 48 000 | 23 | 1999-03-21 02:14:56 |
1 | Rohit Více | 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 výše uvedeného dotazu ukazují, že záznamy jsou zobrazeny podle sestupného pořadí nástupního dne zaměstnanců.
Příklad 7:
Napište dotaz pro zobrazení všech podrobností o zaměstnancích uspořádaných vzestupně podle data narození zaměstnanců.
Dotaz:
mysql> SELECT ID, Name, Salary, Joining_Date, DAY (DOB) AS Day_Of_Birth FROM employees ORDER BY DAY (DOB);
Jelikož jsme chtěli záznamy seřadit vzestupně podle data narození zaměstnanců, tak jsme aplikovali doložku ORDER BY. Funkce DAY () se aplikuje na sloupec 'DOB' pro extrahování pouze dne narození z DOB.
Získáte následující výstup:
ID | název | Plat | Year_of_Joining | Datum narození |
---|---|---|---|---|
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 2 |
2 | Kunal Mohit | 34 000 | 2021-01-01 | patnáct |
3 | Saurabh Jha | 61 000 | 2015-05-01 | dvacet |
5 | Krišna Sharma | 48 000 | 2010-10-23 | dvacet jedna |
1 | Rohit Více | 50 000 | 2020-02-08 | 28 |
4 | Anant Desai | 59 000 | 2018-08-27 | 29 |
Výsledky získané z výše uvedeného dotazu ukazují, že záznamy jsou zobrazovány vzestupně podle dne narození zaměstnance.
Příklad 8:
Napište dotaz pro zobrazení všech podrobností o zaměstnancích uspořádaných vzestupně podle měsíce narození zaměstnance.
Dotaz:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB);
ID | název | Plat | Datum připojení | nar |
---|---|---|---|---|
1 | Rohit Více | 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 | Krišna Sharma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
2 | Kunal Mohit | 34 000 | 2021-01-01 | 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 výše uvedeného dotazu ukazují, že záznamy jsou zobrazeny vzestupně podle měsíce narození zaměstnance.
Příklad 9:
Napište dotaz pro zobrazení všech podrobností o zaměstnancích uspořádaných vzestupně podle měsíce nástupu zaměstnance.
Dotaz:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (Joining_Date);
Protože jsme chtěli záznamy seřadit vzestupně podle přibývajícího měsíce zaměstnanců, tak jsme aplikovali klauzuli ORDER BY. Funkce MONTH () je aplikována na sloupec 'Joining_Date' k extrahování pouze měsíce připojení z Joining_Date.
Získáte následující výstup:
ID | název | Plat | Datum připojení | nar |
---|---|---|---|---|
2 | Kunal Mohit | 34 000 | 2021-01-01 | 15.05.1990 19:10:00 |
1 | Rohit Více | 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 | Krišna Sharma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
Výsledky získané z výše uvedeného dotazu ukazují, že záznamy se zobrazují vzestupně podle měsíce nástupu zaměstnance.