- ORDER BY és una clàusula en SQL que s'utilitza amb la consulta SELECT per obtenir els registres en ordre ascendent o descendent d'una taula.
- De la mateixa manera que ordenem els valors enters i de cadena emmagatzemats a la columna de les taules, de la mateixa manera, podem ordenar les dates emmagatzemades a la columna de la taula SQL.
- Tots els registres s'ordenaran, per defecte, en ordre ascendent. Per ordenar els registres en ordre descendent, s'utilitza la paraula clau DESC.
Vegem alguns exemples pràctics per entendre aquest concepte amb més claredat. Utilitzarem la base de dades MySQL per escriure totes les consultes.
Penseu que hem creat una taula anomenada com a empleats a la base de dades MySQL amb les dades següents:
si per resum de rudyard kipling
ID | Nom | Sou | Data_unió | Data de naixement |
---|---|---|---|---|
1 | Rohit Més | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
Exemple 1:
Escriu una consulta per mostrar tots els detalls dels empleats ordenats en ordre ascendent de la seva data de naixement.
Consulta:
mysql> SELECT *FROM employees ORDER BY DOB;
Com que hem volgut ordenar els registres per ordre ascendent de la data de naixement dels empleats, hem aplicat la clàusula ORDER BY a la columna 'FD'.
Obtindreu la següent sortida:
ID | Nom | Sou | Data_unió | Data de naixement |
---|---|---|---|---|
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | Rohit Més | 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 | 2010-10-23 | 1999-03-21 02:14:56 |
Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre ascendent del DOB.
Exemple 2:
Escriviu una consulta per mostrar tots els detalls dels empleats ordenats per ordre descendent de les dates d'incorporació.
Consulta:
mysql> SELECT *FROM employees ORDER BY Joining_Date DESC;
Com que volíem ordenar els registres en l'ordre decreixent de la data d'incorporació dels empleats, hem aplicat la clàusula ORDER BY amb la paraula clau DESC a la columna 'Joining_Date'.
Obtindreu la següent sortida:
ID | Nom | Sou | Data_unió | Data de naixement |
---|---|---|---|---|
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | Rohit Més | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre descendent de les dates d'unió.
Exemple 3:
Escriu una consulta per mostrar tots els detalls dels empleats ordenats per ordre ascendent del seu any de naixement.
Consulta:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%Y') AS Year_of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%Y');
Com que hem volgut ordenar els registres per ordre ascendent de l'any de naixement dels empleats, hem aplicat la clàusula ORDER BY. La funció DATE_FORMAT () s'aplica a la columna DOB amb el paràmetre '%Y' per extreure només l'any de 'DOB'.
Obtindreu la següent sortida:
ID | Nom | Sou | Data_unió | Any de naixement |
---|---|---|---|---|
4 | Anant Desai | 59000 | 2018-08-27 | 1978 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990 |
1 | Rohit Més | 50000 | 2020-02-08 | 1991 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999 |
Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre ascendent de l'any de naixement de l'empleat.
Exemple 4:
Escriu una consulta per mostrar tots els detalls dels empleats ordenats per ordre decreixent de la seva hora de naixement.
Consulta:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%H') AS Hour_Of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%H') DESC;
Com que volíem ordenar els registres per ordre descendent de l'hora de naixement dels empleats, hem aplicat la clàusula ORDER BY amb la paraula clau DESC. La funció DATE_FORMAT () s'aplica a la columna DOB amb el paràmetre '%H' per extreure només l'hora de naixement de la columna 'DOB'.
germans kylie jenner
Obtindreu la següent sortida:
ID | Nom | Sou | Data_unió | Hora_de_naixement |
---|---|---|---|---|
2 | Kunal Mohit | 34000 | 2021-01-01 | 19 |
1 | Rohit Més | 50000 | 2020-02-08 | 18 |
4 | Anant Desai | 59000 | 2018-08-27 | 15 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 12 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 02 |
Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre decreixent de l'hora de naixement de l'empleat.
Exemple 5:
Escriviu una consulta per mostrar tots els detalls dels empleats ordenats per ordre ascendent de l'any d'incorporació.
Consulta:
mysql> SELECT ID, Name, Salary, DOB, DATE_FORMAT (Joining_Date, '%Y') AS Year_Of_Joining FROM employees ORDER BY DATE_FORMAT (Joining_Date, '%Y');
Com que volíem ordenar els registres per ordre ascendent de l'any d'incorporació dels empleats, hem aplicat la clàusula ORDER BY. La funció DATE_FORMAT () s'aplica a la columna Joining_Date amb el paràmetre '%Y' per extreure només l'any de 'Joining_Date'.
Obtindreu la següent sortida:
ID | Nom | Sou | Any_d'unió | Data de naixement |
---|---|---|---|---|
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 Més | 50000 | 2020 | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34000 | 2021 | 1990-05-15 19:10:00 |
6 | Bhavesh Jain | 37000 | 2021 | 1998-08-02 13:00:01 |
Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre ascendent de l'any d'incorporació dels empleats.
Exemple 6:
Escriu una consulta per mostrar tots els detalls dels empleats ordenats en ordre descendent del dia d'incorporació dels empleats.
Consulta:
actor chiranjeevi
mysql> SELECT ID, Name, Salary, DAY (Joining_Date) AS Day_Of_Joining, DOB FROM employees ORDER BY DAY (Joining_Date) DESC;
Com que volíem ordenar els registres per ordre descendent del dia d'incorporació dels empleats, hem aplicat la clàusula ORDER BY amb la paraula clau DESC. La funció DAY () s'aplica a la columna 'Joining_Date' per extreure només el dia d'unió de Joining_Date.
Obtindreu la següent sortida:
ID | Nom | Sou | Dia_d'unió | Data de naixement |
---|---|---|---|---|
4 | Anant Desai | 59000 | 27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48000 | 23 | 1999-03-21 02:14:56 |
1 | Rohit Més | 50000 | 8 | 1991-01-28 18:06:08 |
6 | Bhavesh Jain | 37000 | 3 | 1998-08-02 13:00:01 |
2 | Kunal Mohit | 34000 | 1 | 1990-05-15 19:10:00 |
3 | Saurabh Jha | 61000 | 1 | 1983-02-20 12:18:45 |
Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre decreixent del dia d'incorporació dels empleats.
Exemple 7:
Escriu una consulta per mostrar tots els detalls dels empleats ordenats en ordre ascendent del dia de naixement dels empleats.
Consulta:
mysql> SELECT ID, Name, Salary, Joining_Date, DAY (DOB) AS Day_Of_Birth FROM employees ORDER BY DAY (DOB);
Com que hem volgut ordenar els registres per ordre ascendent del dia de naixement dels empleats, hem aplicat la clàusula ORDER BY. La funció DAY () s'aplica a la columna 'DATA' per extreure només el dia de naixement de la data de naixement.
Obtindreu la següent sortida:
ID | Nom | Sou | Any_d'unió | Dia_de_naixement |
---|---|---|---|---|
6 | Bhavesh Jain | 37000 | 2021-07-03 | 2 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 15 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 20 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 21 |
1 | Rohit Més | 50000 | 2020-02-08 | 28 |
4 | Anant Desai | 59000 | 2018-08-27 | 29 |
Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre ascendent del dia de naixement de l'empleat.
Exemple 8:
millor somriure del món
Escriviu una consulta per mostrar tots els detalls dels empleats ordenats en ordre ascendent del mes de naixement de l'empleat.
Consulta:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB);
ID | Nom | Sou | Data_unió | Data de naixement |
---|---|---|---|---|
1 | Rohit Més | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre ascendent del mes de naixement de l'empleat.
Exemple 9:
Escriviu una consulta per mostrar tots els detalls dels empleats ordenats en ordre ascendent del mes d'incorporació de l'empleat.
Consulta:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (Joining_Date);
Com que volíem ordenar els registres per ordre ascendent del mes d'incorporació dels empleats, hem aplicat la clàusula ORDER BY. La funció MONTH () s'aplica a la columna 'Joining_Date' per extreure només el mes d'unió de Joining_Date.
Obtindreu la següent sortida:
ID | Nom | Sou | Data_unió | Data de naixement |
---|---|---|---|---|
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | Rohit Més | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
Els resultats obtinguts de la consulta anterior mostren que els registres es mostren segons l'ordre ascendent del mes d'incorporació de l'empleat.