- Ogni volta che vogliamo ordinare i record in base alle colonne memorizzate nelle tabelle del database SQL, consideriamo l'utilizzo della clausola ORDER BY in SQL.
- La clausola ORDER BY in SQL ci aiuta a ordinare i record in base alla colonna specifica di una tabella. Ciò significa che inizialmente verranno ordinati tutti i valori memorizzati nella colonna su cui stiamo applicando la clausola ORDER BY. Quindi i valori della colonna corrispondente verranno visualizzati nella stessa sequenza in cui i valori che abbiamo ottenuto nel passaggio precedente.
- Utilizzando la clausola ORDER BY, possiamo ordinare i record in ordine crescente o decrescente secondo le nostre esigenze. I record verranno ordinati in ordine crescente ogni volta che viene utilizzata la parola chiave ASC con la clausola ORDER by. La parola chiave DESC ordinerà i record in ordine decrescente . Se non viene specificata alcuna parola chiave dopo la colonna in base alla quale dobbiamo ordinare i record, in tal caso l'ordinamento verrà eseguito per impostazione predefinita in ordine crescente.
Prima di scrivere le query per l'ordinamento dei record, comprendiamone la sintassi.
Sintassi per ordinare i record in ordine decrescente:
SELECT ColumnName1,…,ColumnNameN FROM TableName ORDER BY ColumnNameDESC;
Esploriamo di più su questo argomento con l'aiuto di esempi. Utilizzeremo il database MySQL per scrivere le query negli esempi.
Consideriamo la tabella dei clienti con i seguenti record:
ID | NOME | ETÀ | INDIRIZZO | STIPENDIO |
---|---|---|---|---|
1 | Himani Gupta | ventuno | Modi Nagar | 22000 |
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
3 | Ajeet Bhargav | Quattro cinque | Meerut | 65000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
5 | Balwant Singh | Quattro cinque | Varanasi | 36000 |
6 | Mahesh Sharma | 26 | Matura | 22000 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38000 |
8 | Neeru Sharma | 29 | Puna | 40000 |
9 | Akash Yadav | 32 | Bombay | 43500 |
10 | Sahil Sheikh | 35 | Aurangabad | 68800 |
Esempio 1:
Scrivere una query per ordinare i record in ordine decrescente dei nomi dei clienti archiviati nella tabella clienti.
Domanda:
mysql> SELECT *FROM customers ORDER BY Name DESC;
Qui in una query SELECT, viene applicata una clausola ORDER BY sulla colonna 'Nome' per ordinare i record. La parola chiave DESC ordinerà i record in ordine decrescente.
Otterrai il seguente output:
ID | NOME | ETÀ | INDIRIZZO | STIPENDIO |
---|---|---|---|---|
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 | Puna | 40000 |
6 | Mahesh Sharma | 26 | Matura | 22000 |
1 | Himani Gupta | ventuno | Modi Nagar | 22000 |
5 | Balwant Singh | Quattro cinque | Varanasi | 36000 |
3 | Ajeet Bhargav | Quattro cinque | Meerut | 65000 |
9 | Akash Yadav | 32 | Bombay | 43500 |
Tutti i record presenti nella tabella clienti vengono visualizzati in ordine decrescente del nome del cliente.
Esempio 2:
Scrivi una query per ordinare i record in ordine decrescente degli indirizzi memorizzati nella tabella clienti.
Domanda:
mysql> SELECT *FROM customers ORDER BY Address DESC;
Qui in una query SELECT, una clausola ORDER BY viene applicata alla colonna 'Indirizzo' per ordinare i record. La parola chiave DESC ordinerà i record in ordine decrescente.
Otterrai il seguente output:
ID | NOME | ETÀ | INDIRIZZO | STIPENDIO |
---|---|---|---|---|
5 | Balwant Singh | Quattro cinque | Varanasi | 36000 |
8 | Neeru Sharma | 29 | Puna | 40000 |
9 | Akash Yadav | 32 | Bombay | 43500 |
1 | Himani Gupta | ventuno | Modi Nagar | 22000 |
3 | Ajeet Bhargav | Quattro cinque | Meerut | 65000 |
6 | Mahesh Sharma | 26 | Matura | 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 |
Tutti i record presenti nella tabella clienti vengono visualizzati in ordine decrescente di indirizzo del cliente.
Esempio 3:
Scrivere una query per ordinare i record in ordine decrescente rispetto allo stipendio del cliente archiviato nella tabella clienti.
Domanda:
mysql> SELECT *FROM customers ORDER BY Salary DESC;
Qui in una query SELECT, viene applicata una clausola ORDER BY alla colonna 'Stipendio' per ordinare i record. La parola chiave DESC ordinerà i record in ordine decrescente.
Otterrai il seguente output:
ID | Nome | Età | Indirizzo | Stipendio |
---|---|---|---|---|
10 | Sahil Sheikh | 35 | Aurangabad | 68800 |
3 | Ajeet Bhargav | Quattro cinque | Meerut | 65000 |
9 | Akash Yadav | 32 | Bombay | 43500 |
8 | Neeru Sharma | 29 | Puna | 40000 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38000 |
5 | Balwant Singh | Quattro cinque | Varanasi | 36000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
6 | Mahesh Sharma | 26 | Matura | 22000 |
1 | Himani Gupta | ventuno | Modi Nagar | 22000 |
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
Tutti i record presenti nella tabella clienti vengono visualizzati in ordine decrescente dello stipendio del cliente.
Esempio 4:
Scrivere una query per ordinare i record in ordine decrescente in base all'età del cliente memorizzata nella tabella clienti.
kajal aggarwal
Domanda:
mysql> SELECT *FROM customers ORDER BY Age DESC;
Qui in una query SELECT, viene applicata una clausola ORDER BY sulla colonna 'Età' per ordinare i record. La parola chiave DESC ordinerà i record in ordine decrescente.
Otterrai il seguente output:
ID | Nome | Età | Indirizzo | Stipendio |
---|---|---|---|---|
3 | Ajeet Bhargav | Quattro cinque | Meerut | 65000 |
5 | Balwant Singh | Quattro cinque | Varanasi | 36000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
10 | Sahil Sheikh | 35 | Aurangabad | 68800 |
9 | Akash Yadav | 32 | Bombay | 43500 |
8 | Neeru Sharma | 29 | Puna | 40000 |
6 | Mahesh Sharma | 26 | Matura | 22000 |
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
1 | Himani Gupta | ventuno | Modi Nagar | 22000 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38000 |
Tutti i record presenti nella tabella clienti vengono visualizzati in ordine decrescente di età del cliente.
Considera che abbiamo un'altra tabella denominata agenti con i seguenti record:
AIUTO | Nome | Area di lavoro | Profitto_Percentuale | Numero di contatto | Stipendio |
---|---|---|---|---|---|
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43000 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
3 | Prachi Desai | Bombay | 2 | 9056123432 | 60000 |
4 | Shivani Altro | Puna | 3 | 8894236789 | 35500 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
7 | Shweta ha detto | Chandigarh | 6 | 8898786453 | 31670 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
9 | Anushka Tripathi | Sulle tue dita | 9 | 8909124326 | 38000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
Esempio 1:
ricorsione Java
Scrivere una query per ordinare i record in ordine decrescente rispetto ai nomi degli agenti memorizzati nella tabella degli agenti.
Domanda:
mysql> SELECT *FROM agents ORDER BY Name DESC;
Qui in una query SELECT, viene applicata una clausola ORDER BY sulla colonna 'Nome' per ordinare i record. La parola chiave DESC ordinerà i record in ordine decrescente.
Otterrai il seguente output:
AIUTO | Nome | Area di lavoro | Profitto_Percentuale | Numero di contatto | Stipendio |
---|---|---|---|---|---|
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
7 | Shweta ha detto | Chandigarh | 6 | 8898786453 | 31670 |
4 | Shivani Altro | Puna | 3 | 8894236789 | 35500 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
3 | Prachi Desai | Bombay | 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 | Sulle tue dita | 9 | 8909124326 | 38000 |
Tutti i record presenti nella tabella agenti vengono visualizzati in ordine decrescente rispetto al nome dell'agente.
Esempio 2:
Scrivere una query per ordinare i record in ordine decrescente rispetto allo stipendio dell'agente memorizzato nella tabella degli agenti.
Domanda:
mysql> SELECT *FROM agents ORDER BY Salary DESC;
Qui in una query SELECT, viene applicata una clausola ORDER BY alla colonna 'Stipendio' per ordinare i record. La parola chiave DESC ordinerà i record in ordine decrescente.
Otterrai il seguente output:
AIUTO | Nome | Area di lavoro | Profitto_Percentuale | Numero di contatto | Stipendio |
---|---|---|---|---|---|
3 | Prachi Desai | Bombay | 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 | Sulle tue dita | 9 | 8909124326 | 38000 |
4 | Shivani Altro | Puna | 3 | 8894236789 | 35500 |
7 | Shweta ha detto | 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 |
Tutti i record presenti nella tabella agenti vengono visualizzati in ordine decrescente dello stipendio dell'agente.
Esempio 3:
Scrivere una query per ordinare i record in ordine decrescente dell'area di lavoro dell'agente memorizzata nella tabella degli agenti.
Domanda:
mysql> SELECT *FROM agents ORDER BY WorkArea DESC;
Qui in una query SELECT, viene applicata una clausola ORDER BY sulla colonna 'WorkArea' per ordinare i record. La parola chiave DESC ordinerà i record in ordine decrescente.
Otterrai il seguente output:
AIUTO | Nome | Area di lavoro | Profitto_Percentuale | Numero di contatto | Stipendio |
---|---|---|---|---|---|
9 | Anushka Tripathi | Sulle tue dita | 9 | 8909124326 | 38000 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
4 | Shivani Altro | Puna | 3 | 8894236789 | 35500 |
3 | Prachi Desai | Bombay | 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 | Shweta ha detto | Chandigarh | 6 | 8898786453 | 31670 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
Tutti i record presenti nella tabella agenti vengono visualizzati in ordine decrescente nell'area di lavoro dell'agente.
Esempio 4:
Scrivere una query per ordinare i record in ordine decrescente rispetto alla percentuale di profitto dell'agente memorizzata nella tabella degli agenti.
Domanda:
mysql> SELECT *FROM agents ORDER BY Profit_Percent DESC;
Qui in una query SELECT, viene applicata una clausola ORDER BY sulla colonna 'Profit_Percent' per ordinare i record. La parola chiave DESC ordinerà i record in ordine decrescente.
Otterrai il seguente output:
AIUTO | Nome | Area di lavoro | Profitto_Percentuale | Numero di contatto | Stipendio |
---|---|---|---|---|---|
9 | Anushka Tripathi | Sulle tue dita | 9 | 8909124326 | 38000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
7 | Shweta ha detto | Chandigarh | 6 | 8898786453 | 31670 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
4 | Shivani Altro | Puna | 3 | 8894236789 | 35500 |
3 | Prachi Desai | Bombay | 2 | 9056123432 | 60000 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43000 |
Tutti i record presenti nella tabella agenti vengono visualizzati in ordine decrescente di percentuale di profitto dell'agente.