- ORDER BY este o clauză în SQL care este utilizată cu interogarea SELECT pentru a prelua înregistrările în ordine crescătoare sau descrescătoare dintr-un tabel.
- La fel cum sortăm valorile întregi și șirurile stocate în coloana tabelelor, în mod similar, putem sorta datele stocate în coloana tabelului SQL.
- Toate înregistrările vor fi, implicit, sortate în ordine crescătoare. Pentru a sorta înregistrările în ordine descrescătoare, se folosește cuvântul cheie DESC.
Să vedem câteva exemple practice pentru a înțelege mai clar acest concept. Vom folosi baza de date MySQL pentru a scrie toate interogările.
Luați în considerare că am creat un tabel numit angajați în baza de date MySQL cu următoarele date:
ID | Nume | Salariu | Joining_Date | DOB |
---|---|---|---|---|
1 | Rohit More | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 15-05-1990 19:10:00 |
3 | Saurabh Jha | 61000 | 01-05-2015 | 1983-02-20 12:18:45 |
4 | Anant Desai | 59000 | 27-08-2018 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48000 | 23-10-2010 | 1999-03-21 02:14:56 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
Exemplul 1:
Scrieți o interogare pentru a afișa toate detaliile angajaților aranjate în ordinea crescătoare a datei de naștere.
Interogare:
mysql> SELECT *FROM employees ORDER BY DOB;
Întrucât am dorit să sortăm înregistrările în ordinea crescătoare a datei de naștere a angajaților, am aplicat clauza ORDER BY pe coloana „DAT”.
Veți obține următoarea ieșire:
ID | Nume | Salariu | Joining_Date | DOB |
---|---|---|---|---|
4 | Anant Desai | 59000 | 27-08-2018 | 1978-06-29 15:45:13 |
3 | Saurabh Jha | 61000 | 01-05-2015 | 1983-02-20 12:18:45 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 15-05-1990 19:10:00 |
1 | Rohit More | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
5 | Krishna Sharma | 48000 | 23-10-2010 | 1999-03-21 02:14:56 |
Rezultatele obținute din interogarea de mai sus arată că înregistrările sunt afișate în ordinea crescătoare a DOB.
Exemplul 2:
Scrieți o interogare pentru a afișa toate detaliile angajaților aranjate în ordinea descrescătoare a datelor de intrare.
Interogare:
mysql> SELECT *FROM employees ORDER BY Joining_Date DESC;
Deoarece am dorit să sortăm înregistrările în ordinea descrescătoare a datei de aderare a angajaților, am aplicat clauza ORDER BY cu cuvântul cheie DESC în coloana „Data_Asociere”.
Veți obține următoarea ieșire:
ID | Nume | Salariu | Joining_Date | DOB |
---|---|---|---|---|
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 15-05-1990 19:10:00 |
1 | Rohit More | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
4 | Anant Desai | 59000 | 27-08-2018 | 1978-06-29 15:45:13 |
3 | Saurabh Jha | 61000 | 01-05-2015 | 1983-02-20 12:18:45 |
5 | Krishna Sharma | 48000 | 23-10-2010 | 1999-03-21 02:14:56 |
Rezultatele obținute din interogarea de mai sus arată că înregistrările sunt afișate în ordinea descrescătoare a datelor de îmbinare.
Exemplul 3:
Scrieți o interogare pentru a afișa toate detaliile angajaților aranjate în ordinea crescătoare a anului de naștere.
Interogare:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%Y') AS Year_of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%Y');
Deoarece am dorit să sortăm înregistrările în ordinea crescătoare a anului de naștere al angajaților, am aplicat clauza ORDER BY. Funcția DATE_FORMAT () este aplicată pe coloana DOB cu parametrul „%Y” pentru a extrage doar anul din „DOB”.
Veți obține următoarea ieșire:
ID | Nume | Salariu | Joining_Date | Anul nașterii |
---|---|---|---|---|
4 | Anant Desai | 59000 | 27-08-2018 | 1978 |
3 | Saurabh Jha | 61000 | 01-05-2015 | 1983 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990 |
1 | Rohit More | 50000 | 2020-02-08 | 1991 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998 |
5 | Krishna Sharma | 48000 | 23-10-2010 | 1999 |
Rezultatele obținute din interogarea de mai sus arată că înregistrările sunt afișate în ordinea crescătoare a anului de naștere al salariatului.
Exemplul 4:
Scrieți o interogare pentru a afișa toate detaliile angajaților aranjate în ordinea descrescătoare a orei lor de naștere.
Interogare:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%H') AS Hour_Of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%H') DESC;
Deoarece am dorit să sortăm înregistrările în ordinea descrescătoare a orei de naștere a angajaților, am aplicat clauza ORDER BY cu cuvântul cheie DESC. Funcția DATE_FORMAT () este aplicată pe coloana DOB cu parametrul „%H” pentru a extrage doar ora nașterii din coloana „DOB”.
Veți obține următoarea ieșire:
ID | Nume | Salariu | Joining_Date | Ora_de_naștere |
---|---|---|---|---|
2 | Kunal Mohit | 34000 | 2021-01-01 | 19 |
1 | Rohit More | 50000 | 2020-02-08 | 18 |
4 | Anant Desai | 59000 | 27-08-2018 | cincisprezece |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 13 |
3 | Saurabh Jha | 61000 | 01-05-2015 | 12 |
5 | Krishna Sharma | 48000 | 23-10-2010 | 02 |
Rezultatele obținute din interogarea de mai sus arată că înregistrările sunt afișate în ordinea descrescătoare a orei de naștere a angajatului.
Exemplul 5:
Scrieți o interogare pentru a afișa toate detaliile angajaților aranjate în ordinea crescătoare a anului de alăturare.
Interogare:
lista comparabila
mysql> SELECT ID, Name, Salary, DOB, DATE_FORMAT (Joining_Date, '%Y') AS Year_Of_Joining FROM employees ORDER BY DATE_FORMAT (Joining_Date, '%Y');
Deoarece am dorit să sortăm înregistrările în ordinea crescătoare a anului de aderare a angajaților, am aplicat clauza ORDER BY. Funcția DATE_FORMAT () este aplicată pe coloana Joining_Date cu parametrul „%Y” pentru a extrage doar anul din „Joining_Date”.
Veți obține următoarea ieșire:
ID | Nume | Salariu | Anul_Alăturarea | DOB |
---|---|---|---|---|
5 | Krishna Sharma | 48000 | 2010 | 1999-03-21 02:14:56 |
3 | Saurabh Jha | 61000 | 2015 | 1983-02-20 12:18:45 |
4 | Anant Desai | 59000 | 2018 | 1978-06-29 15:45:13 |
1 | Rohit More | 50000 | 2020 | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34000 | 2021 | 15-05-1990 19:10:00 |
6 | Bhavesh Jain | 37000 | 2021 | 1998-08-02 13:00:01 |
Rezultatele obținute din interogarea de mai sus arată că înregistrările sunt afișate în ordinea crescătoare a anului de intrare a angajaților.
Exemplul 6:
Scrieți o interogare pentru a afișa toate detaliile angajaților aranjate în ordinea descrescătoare a zilei de aderare a angajaților.
Interogare:
mysql> SELECT ID, Name, Salary, DAY (Joining_Date) AS Day_Of_Joining, DOB FROM employees ORDER BY DAY (Joining_Date) DESC;
Deoarece am vrut să sortăm înregistrările în ordinea descrescătoare a zilei de alăturare a angajaților, am aplicat clauza ORDER BY cu cuvântul cheie DESC. Funcția DAY () este aplicată pe coloana „Joining_Date” pentru a extrage numai ziua aderării din Joining_Date.
Veți obține următoarea ieșire:
ID | Nume | Salariu | Ziua_Alăturarea | DOB |
---|---|---|---|---|
4 | Anant Desai | 59000 | 27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48000 | 23 | 1999-03-21 02:14:56 |
1 | Rohit More | 50000 | 8 | 1991-01-28 18:06:08 |
6 | Bhavesh Jain | 37000 | 3 | 1998-08-02 13:00:01 |
2 | Kunal Mohit | 34000 | 1 | 15-05-1990 19:10:00 |
3 | Saurabh Jha | 61000 | 1 | 1983-02-20 12:18:45 |
Rezultatele obținute din interogarea de mai sus arată că înregistrările sunt afișate în ordinea descrescătoare a zilei de aderare a angajaților.
Exemplul 7:
Scrieți o interogare pentru a afișa toate detaliile angajaților aranjate în ordine crescătoare a zilei de naștere a angajaților.
Interogare:
mysql> SELECT ID, Name, Salary, Joining_Date, DAY (DOB) AS Day_Of_Birth FROM employees ORDER BY DAY (DOB);
Deoarece am dorit să sortăm înregistrările în ordinea crescătoare a zilei de naștere a angajaților, am aplicat clauza ORDER BY. Funcția DAY () este aplicată pe coloana „DOB” pentru a extrage numai ziua nașterii din data de naștere.
Veți obține următoarea ieșire:
ID | Nume | Salariu | Anul_Alăturarea | Data nasterii |
---|---|---|---|---|
6 | Bhavesh Jain | 37000 | 2021-07-03 | 2 |
2 | Kunal Mohit | 34000 | 2021-01-01 | cincisprezece |
3 | Saurabh Jha | 61000 | 01-05-2015 | douăzeci |
5 | Krishna Sharma | 48000 | 23-10-2010 | douăzeci și unu |
1 | Rohit More | 50000 | 2020-02-08 | 28 |
4 | Anant Desai | 59000 | 27-08-2018 | 29 |
Rezultatele obținute din interogarea de mai sus arată că înregistrările sunt afișate în ordinea crescătoare a zilei de naștere a salariatului.
Exemplul 8:
Scrieți o interogare pentru a afișa toate detaliile angajaților aranjate în ordinea crescătoare a lunii de naștere a angajatului.
Interogare:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB);
ID | Nume | Salariu | Joining_Date | DOB |
---|---|---|---|---|
1 | Rohit More | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Saurabh Jha | 61000 | 01-05-2015 | 1983-02-20 12:18:45 |
5 | Krishna Sharma | 48000 | 23-10-2010 | 1999-03-21 02:14:56 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 15-05-1990 19:10:00 |
4 | Anant Desai | 59000 | 27-08-2018 | 1978-06-29 15:45:13 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
Rezultatele obținute din interogarea de mai sus arată că înregistrările sunt afișate în ordinea crescătoare a lunii de naștere a angajatului.
Exemplul 9:
Scrieți o interogare pentru a afișa toate detaliile angajaților aranjate în ordinea crescătoare a lunii de înscriere a angajatului.
Interogare:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (Joining_Date);
Deoarece am vrut să sortăm înregistrările în ordinea crescătoare a lunii de aderare a angajaților, am aplicat clauza ORDER BY. Funcția MONTH () este aplicată pe coloana „Joining_Date” pentru a extrage numai luna aderării din Joining_Date.
Veți obține următoarea ieșire:
ID | Nume | Salariu | Joining_Date | DOB |
---|---|---|---|---|
2 | Kunal Mohit | 34000 | 2021-01-01 | 15-05-1990 19:10:00 |
1 | Rohit More | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Saurabh Jha | 61000 | 01-05-2015 | 1983-02-20 12:18:45 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
4 | Anant Desai | 59000 | 27-08-2018 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48000 | 23-10-2010 | 1999-03-21 02:14:56 |
Rezultatele obținute din interogarea de mai sus arată că înregistrările sunt afișate în ordinea crescătoare a lunii de înscriere a angajatului.