- Sempre que volem ordenar els registres en funció de les columnes emmagatzemades a les taules de la base de dades SQL, considerem utilitzar la clàusula ORDER BY a SQL.
- La clàusula ORDER BY en SQL ens ajuda a ordenar els registres en funció de la columna específica d'una taula. Això vol dir que inicialment s'ordenaran tots els valors emmagatzemats a la columna a la qual estem aplicant la clàusula ORDER BY. A continuació, es mostraran els valors de columna corresponents en la mateixa seqüència en què els valors que hem obtingut en el pas anterior.
- Mitjançant la clàusula ORDER BY, podem ordenar els registres en ordre ascendent o descendent segons el nostre requisit. Els registres s'ordenaran en ordre ascendent sempre que s'utilitzi la paraula clau ASC amb la clàusula ORDER by. La paraula clau DESC ordenarà els registres en ordre descendent . Si no s'especifica cap paraula clau després de la columna en funció de la qual hem d'ordenar els registres, aleshores, en aquest cas, l'ordenació es farà per defecte en ordre ascendent.
Abans d'escriure les consultes per ordenar els registres, entenem la sintaxi.
Sintaxi per ordenar els registres en ordre descendent:
SELECT ColumnName1,…,ColumnNameN FROM TableName ORDER BY ColumnNameDESC;
Explorem més sobre aquest tema amb l'ajuda d'exemples. Utilitzarem la base de dades MySQL per escriure les consultes en exemples.
Penseu que tenim una taula de clients amb els registres següents:
ID | NOM | EDAT | ADREÇA | SOU |
---|---|---|---|---|
1 | Himani Gupta | 21 | Modi Nagar | 22000 |
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
3 | Ajeet Bhargav | 45 | Meerut | 65000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
5 | Balwant Singh | 45 | Varanasi | 36000 |
6 | Mahesh Sharma | 26 | Mathura | 22000 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38000 |
8 | Neeru Sharma | 29 | Pune | 40000 |
9 | Akash Yadav | 32 | Bombai | 43500 |
10 | Sahil Sheikh | 35 | Aurangabad | 68800 |
Exemple 1:
Escriviu una consulta per ordenar els registres en ordre descendent dels noms de clients emmagatzemats a la taula de clients.
Consulta:
mysql> SELECT *FROM customers ORDER BY Name DESC;
Aquí, en una consulta SELECT, s'aplica una clàusula ORDER BY a la columna 'Nom' per ordenar els registres. La paraula clau DESC ordenarà els registres en ordre descendent.
Obtindreu la següent sortida:
ID | NOM | EDAT | ADREÇA | SOU |
---|---|---|---|---|
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
10 | Sahil Sheikh | 35 | Aurangabad | 68800 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
8 | Neeru Sharma | 29 | Pune | 40000 |
6 | Mahesh Sharma | 26 | Mathura | 22000 |
1 | Himani Gupta | 21 | Modi Nagar | 22000 |
5 | Balwant Singh | 45 | Varanasi | 36000 |
3 | Ajeet Bhargav | 45 | Meerut | 65000 |
9 | Akash Yadav | 32 | Bombai | 43500 |
Tots els registres presents a la taula de clients es mostren en ordre descendent del nom del client.
Exemple 2:
Escriviu una consulta per ordenar els registres en ordre descendent de les adreces emmagatzemades a la taula de clients.
Consulta:
mysql> SELECT *FROM customers ORDER BY Address DESC;
Aquí, en una consulta SELECT, s'aplica una clàusula ORDER BY a la columna 'Adreça' per ordenar els registres. La paraula clau DESC ordenarà els registres en ordre descendent.
Obtindreu la següent sortida:
ID | NOM | EDAT | ADREÇA | SOU |
---|---|---|---|---|
5 | Balwant Singh | 45 | Varanasi | 36000 |
8 | Neeru Sharma | 29 | Pune | 40000 |
9 | Akash Yadav | 32 | Bombai | 43500 |
1 | Himani Gupta | 21 | Modi Nagar | 22000 |
3 | Ajeet Bhargav | 45 | Meerut | 65000 |
6 | Mahesh Sharma | 26 | Mathura | 22000 |
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
10 | Sahil Sheikh | 35 | Aurangabad | 68800 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38000 |
Tots els registres presents a la taula de clients es mostren en ordre descendent de l'adreça del client.
què és f5 al teclat
Exemple 3:
Escriviu una consulta per ordenar els registres en ordre descendent del salari del client emmagatzemat a la taula de clients.
Consulta:
mysql> SELECT *FROM customers ORDER BY Salary DESC;
Aquí, en una consulta SELECT, s'aplica una clàusula ORDER BY a la columna 'Salari' per ordenar els registres. La paraula clau DESC ordenarà els registres en ordre descendent.
Obtindreu la següent sortida:
ID | Nom | Edat | adreça | Sou |
---|---|---|---|---|
10 | Sahil Sheikh | 35 | Aurangabad | 68800 |
3 | Ajeet Bhargav | 45 | Meerut | 65000 |
9 | Akash Yadav | 32 | Bombai | 43500 |
8 | Neeru Sharma | 29 | Pune | 40000 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38000 |
5 | Balwant Singh | 45 | Varanasi | 36000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
6 | Mahesh Sharma | 26 | Mathura | 22000 |
1 | Himani Gupta | 21 | Modi Nagar | 22000 |
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
Tots els registres presents a la taula de clients es mostren en ordre descendent del salari del client.
Exemple 4:
Escriviu una consulta per ordenar els registres en ordre descendent de l'edat del client emmagatzemat a la taula de clients.
Consulta:
mysql> SELECT *FROM customers ORDER BY Age DESC;
Aquí, en una consulta SELECT, s'aplica una clàusula ORDER BY a la columna 'Edat' per ordenar els registres. La paraula clau DESC ordenarà els registres en ordre descendent.
Obtindreu la següent sortida:
ID | Nom | Edat | adreça | Sou |
---|---|---|---|---|
3 | Ajeet Bhargav | 45 | Meerut | 65000 |
5 | Balwant Singh | 45 | Varanasi | 36000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
10 | Sahil Sheikh | 35 | Aurangabad | 68800 |
9 | Akash Yadav | 32 | Bombai | 43500 |
8 | Neeru Sharma | 29 | Pune | 40000 |
6 | Mahesh Sharma | 26 | Mathura | 22000 |
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
1 | Himani Gupta | 21 | Modi Nagar | 22000 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38000 |
Tots els registres presents a la taula de clients es mostren en ordre descendent de l'edat del client.
Penseu que tenim una altra taula anomenada agents amb els registres següents:
AJUDA | Nom | Àrea de treball | Profit_Percent | Nombre de contacte | Sou |
---|---|---|---|---|---|
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43000 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
3 | Prachi Desai | Bombai | 2 | 9056123432 | 60000 |
4 | Shivani Més | Pune | 3 | 8894236789 | 35500 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
7 | va dir Shweta | Chandigarh | 6 | 8898786453 | 31670 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
9 | Anushka Tripathi | Als teus dits | 9 | 8909124326 | 38000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
Exemple 1:
Escriviu una consulta per ordenar els registres en l'ordre descendent dels noms d'agent emmagatzemats a la taula d'agents.
Consulta:
mysql> SELECT *FROM agents ORDER BY Name DESC;
Aquí, en una consulta SELECT, s'aplica una clàusula ORDER BY a la columna 'Nom' per ordenar els registres. La paraula clau DESC ordenarà els registres en ordre descendent.
Obtindreu la següent sortida:
AJUDA | Nom | Àrea de treball | Profit_Percent | Nombre de contacte | Sou |
---|---|---|---|---|---|
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
7 | va dir Shweta | Chandigarh | 6 | 8898786453 | 31670 |
4 | Shivani Més | Pune | 3 | 8894236789 | 35500 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
3 | Prachi Desai | Bombai | 2 | 9056123432 | 60000 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
9 | Anushka Tripathi | Als teus dits | 9 | 8909124326 | 38000 |
Tots els registres presents a la taula d'agents es mostren en ordre descendent del nom de l'agent.
Exemple 2:
Escriviu una consulta per ordenar els registres en l'ordre descendent del salari de l'agent emmagatzemat a la taula d'agents.
Consulta:
mysql> SELECT *FROM agents ORDER BY Salary DESC;
Aquí, en una consulta SELECT, s'aplica una clàusula ORDER BY a la columna 'Salari' per ordenar els registres. La paraula clau DESC ordenarà els registres en ordre descendent.
Obtindreu la següent sortida:
AJUDA | Nom | Àrea de treball | Profit_Percent | Nombre de contacte | Sou |
---|---|---|---|---|---|
3 | Prachi Desai | Bombai | 2 | 9056123432 | 60000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43000 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
9 | Anushka Tripathi | Als teus dits | 9 | 8909124326 | 38000 |
4 | Shivani Més | Pune | 3 | 8894236789 | 35500 |
7 | va dir Shweta | Chandigarh | 6 | 8898786453 | 31670 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
Tots els registres presents a la taula d'agents es mostren en ordre descendent del salari de l'agent.
Exemple 3:
Escriviu una consulta per ordenar els registres en l'ordre descendent de l'àrea de treball de l'agent emmagatzemat a la taula d'agents.
Consulta:
mysql> SELECT *FROM agents ORDER BY WorkArea DESC;
Aquí, en una consulta SELECT, s'aplica una clàusula ORDER BY a la columna 'WorkArea' per ordenar els registres. La paraula clau DESC ordenarà els registres en ordre descendent.
Obtindreu la següent sortida:
AJUDA | Nom | Àrea de treball | Profit_Percent | Nombre de contacte | Sou |
---|---|---|---|---|---|
9 | Anushka Tripathi | Als teus dits | 9 | 8909124326 | 38000 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
4 | Shivani Més | Pune | 3 | 8894236789 | 35500 |
3 | Prachi Desai | Bombai | 2 | 9056123432 | 60000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
7 | va dir Shweta | Chandigarh | 6 | 8898786453 | 31670 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
Tots els registres presents a la taula d'agents es mostren en ordre descendent de l'àrea de treball de l'agent.
Exemple 4:
Escriviu una consulta per ordenar els registres en l'ordre descendent del percentatge de beneficis de l'agent emmagatzemat a la taula d'agents.
Consulta:
mysql> SELECT *FROM agents ORDER BY Profit_Percent DESC;
Aquí, en una consulta SELECT, s'aplica una clàusula ORDER BY a la columna 'Profit_Percent' per ordenar els registres. La paraula clau DESC ordenarà els registres en ordre descendent.
Obtindreu la següent sortida:
AJUDA | Nom | Àrea de treball | Profit_Percent | Nombre de contacte | Sou |
---|---|---|---|---|---|
9 | Anushka Tripathi | Als teus dits | 9 | 8909124326 | 38000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
7 | va dir Shweta | Chandigarh | 6 | 8898786453 | 31670 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
4 | Shivani Més | Pune | 3 | 8894236789 | 35500 |
3 | Prachi Desai | Bombai | 2 | 9056123432 | 60000 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43000 |
Tots els registres presents a la taula d'agents es mostren en ordre descendent del percentatge de beneficis de l'agent.