- ORDER BY è una clausola in SQL che viene utilizzata con la query SELECT per recuperare i record in ordine crescente o decrescente da una tabella.
- Proprio come ordiniamo i valori interi e stringa memorizzati nella colonna delle tabelle, allo stesso modo possiamo ordinare le date memorizzate nella colonna della tabella SQL.
- Tutti i record verranno, per impostazione predefinita, ordinati in ordine crescente. Per ordinare i record in ordine decrescente, viene utilizzata la parola chiave DESC.
Vediamo alcuni esempi pratici per comprendere più chiaramente questo concetto. Utilizzeremo il database MySQL per scrivere tutte le query.
Considera di aver creato una tabella denominata dipendenti nel database MySQL con i seguenti dati:
ID | Nome | Stipendio | Data_iscrizione | DOB |
---|---|---|---|---|
1 | Rohit di più | 50000 | 2020-02-08 | 28/01/1991 18:06:08 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 15/05/1990 19:10:00 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 20/02/1983 12:18:45 |
4 | Anant Desai | 59000 | 27-08-2018 | 29/06/1978 15:45:13 |
5 | Krishna Sharma | 48000 | 23-10-2010 | 21/03/1999 02:14:56 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 02-08-1998 13:00:01 |
Esempio 1:
Scrivi una query per visualizzare tutti i dettagli dei dipendenti disposti in ordine crescente in base alla data di nascita.
Domanda:
mysql> SELECT *FROM employees ORDER BY DOB;
Poiché volevamo ordinare i record in ordine crescente rispetto alla data di nascita dei dipendenti, abbiamo applicato la clausola ORDER BY sulla colonna 'DOB'.
Otterrai il seguente output:
ID | Nome | Stipendio | Data_iscrizione | DOB |
---|---|---|---|---|
4 | Anant Desai | 59000 | 27-08-2018 | 29/06/1978 15:45:13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 20/02/1983 12:18:45 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 15/05/1990 19:10:00 |
1 | Rohit di più | 50000 | 2020-02-08 | 28/01/1991 18:06:08 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 02-08-1998 13:00:01 |
5 | Krishna Sharma | 48000 | 23-10-2010 | 21/03/1999 02:14:56 |
I risultati ottenuti dalla query precedente mostrano che i record vengono visualizzati secondo l'ordine crescente del DOB.
Esempio 2:
Scrivi una query per visualizzare tutti i dettagli dei dipendenti disposti in ordine decrescente in base alle date di assunzione.
Domanda:
mysql> SELECT *FROM employees ORDER BY Joining_Date DESC;
Poiché volevamo ordinare i record in ordine decrescente in base alla data di assunzione dei dipendenti, abbiamo applicato la clausola ORDER BY con la parola chiave DESC nella colonna 'Joining_Date'.
Otterrai il seguente output:
elenco comparabile
ID | Nome | Stipendio | Data_iscrizione | DOB |
---|---|---|---|---|
6 | Bhavesh Jain | 37000 | 2021-07-03 | 02-08-1998 13:00:01 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 15/05/1990 19:10:00 |
1 | Rohit di più | 50000 | 2020-02-08 | 28/01/1991 18:06:08 |
4 | Anant Desai | 59000 | 27-08-2018 | 29/06/1978 15:45:13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 20/02/1983 12:18:45 |
5 | Krishna Sharma | 48000 | 23-10-2010 | 21/03/1999 02:14:56 |
I risultati ottenuti dalla query precedente mostrano che i record vengono visualizzati secondo l'ordine decrescente delle date di unione.
Esempio 3:
Scrivi una query per visualizzare tutti i dettagli dei dipendenti disposti in ordine crescente in base all'anno di nascita.
Domanda:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%Y') AS Year_of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%Y');
Poiché volevamo ordinare i record in ordine crescente in base all'anno di nascita dei dipendenti, abbiamo applicato la clausola ORDER BY. La funzione DATE_FORMAT () viene applicata alla colonna DOB con il parametro '%Y' per estrarre solo l'anno da 'DOB'.
Otterrai il seguente output:
ID | Nome | Stipendio | Data_iscrizione | Anno di nascita |
---|---|---|---|---|
4 | Anant Desai | 59000 | 27-08-2018 | 1978 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990 |
1 | Rohit di più | 50000 | 2020-02-08 | 1991 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998 |
5 | Krishna Sharma | 48000 | 23-10-2010 | 1999 |
I risultati ottenuti dalla query precedente mostrano che i record vengono visualizzati in base all'ordine crescente dell'anno di nascita del dipendente.
Esempio 4:
Scrivi una query per visualizzare tutti i dettagli dei dipendenti disposti in ordine decrescente in base all'ora di nascita.
lista stringa java
Domanda:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%H') AS Hour_Of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%H') DESC;
Poiché volevamo ordinare i record in ordine decrescente in base all'ora di nascita dei dipendenti, abbiamo applicato la clausola ORDER BY con la parola chiave DESC. La funzione DATE_FORMAT () viene applicata sulla colonna DOB con il parametro '%H' per estrarre solo l'ora di nascita dalla colonna'DOB'.
Otterrai il seguente output:
ID | Nome | Stipendio | Data_iscrizione | Ora_di_nascita |
---|---|---|---|---|
2 | Kunal Mohit | 34000 | 2021-01-01 | 19 |
1 | Rohit di più | 50000 | 2020-02-08 | 18 |
4 | Anant Desai | 59000 | 27-08-2018 | quindici |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 12 |
5 | Krishna Sharma | 48000 | 23-10-2010 | 02 |
I risultati ottenuti dalla query precedente mostrano che i record vengono visualizzati in base all'ordine decrescente dell'ora di nascita del dipendente.
Esempio 5:
Scrivi una query per visualizzare tutti i dettagli dei dipendenti disposti in ordine crescente in base all'anno di assunzione.
Domanda:
mysql> SELECT ID, Name, Salary, DOB, DATE_FORMAT (Joining_Date, '%Y') AS Year_Of_Joining FROM employees ORDER BY DATE_FORMAT (Joining_Date, '%Y');
Poiché volevamo ordinare i record in ordine crescente in base all'anno di assunzione dei dipendenti, abbiamo applicato la clausola ORDER BY. La funzione DATE_FORMAT () viene applicata alla colonna Joining_Date con il parametro '%Y' per estrarre solo l'anno da 'Joining_Date'.
Otterrai il seguente output:
ID | Nome | Stipendio | Anno_di_adesione | DOB |
---|---|---|---|---|
5 | Krishna Sharma | 48000 | 2010 | 21/03/1999 02:14:56 |
3 | Saurabh Jha | 61000 | 2015 | 20/02/1983 12:18:45 |
4 | Anant Desai | 59000 | 2018 | 29/06/1978 15:45:13 |
1 | Rohit di più | 50000 | 2020 | 28/01/1991 18:06:08 |
2 | Kunal Mohit | 34000 | 2021 | 15/05/1990 19:10:00 |
6 | Bhavesh Jain | 37000 | 2021 | 02-08-1998 13:00:01 |
I risultati ottenuti dalla query di cui sopra mostrano che i record vengono visualizzati in base all'ordine crescente dell'anno di assunzione dei dipendenti.
Esempio 6:
Scrivi una query per visualizzare tutti i dettagli dei dipendenti disposti in ordine decrescente in base al giorno di assunzione dei dipendenti.
Domanda:
mysql> SELECT ID, Name, Salary, DAY (Joining_Date) AS Day_Of_Joining, DOB FROM employees ORDER BY DAY (Joining_Date) DESC;
Poiché volevamo ordinare i record in ordine decrescente in base al giorno di assunzione dei dipendenti, abbiamo applicato la clausola ORDER BY con la parola chiave DESC. La funzione DAY () viene applicata alla colonna 'Joining_Date' per estrarre solo il giorno dell'adesione da Joining_Date.
Otterrai il seguente output:
ID | Nome | Stipendio | Giorno_di_partecipazione | DOB |
---|---|---|---|---|
4 | Anant Desai | 59000 | 27 | 29/06/1978 15:45:13 |
5 | Krishna Sharma | 48000 | 23 | 21/03/1999 02:14:56 |
1 | Rohit di più | 50000 | 8 | 28/01/1991 18:06:08 |
6 | Bhavesh Jain | 37000 | 3 | 02-08-1998 13:00:01 |
2 | Kunal Mohit | 34000 | 1 | 15/05/1990 19:10:00 |
3 | Saurabh Jha | 61000 | 1 | 20/02/1983 12:18:45 |
I risultati ottenuti dalla query di cui sopra mostrano che i record vengono visualizzati in base all'ordine decrescente del giorno di assunzione dei dipendenti.
Esempio 7:
Scrivi una query per visualizzare tutti i dettagli dei dipendenti disposti in ordine crescente in base al giorno di nascita dei dipendenti.
Domanda:
mysql> SELECT ID, Name, Salary, Joining_Date, DAY (DOB) AS Day_Of_Birth FROM employees ORDER BY DAY (DOB);
Poiché volevamo ordinare i record in ordine crescente in base al giorno di nascita dei dipendenti, abbiamo applicato la clausola ORDER BY. La funzione DAY () viene applicata alla colonna 'DOB' per estrarre solo il giorno di nascita dal DOB.
Otterrai il seguente output:
ID | Nome | Stipendio | Anno_di_adesione | Giorno di nascita |
---|---|---|---|---|
6 | Bhavesh Jain | 37000 | 2021-07-03 | 2 |
2 | Kunal Mohit | 34000 | 2021-01-01 | quindici |
3 | Saurabh Jha | 61000 | 2015-05-01 | venti |
5 | Krishna Sharma | 48000 | 23-10-2010 | ventuno |
1 | Rohit di più | 50000 | 2020-02-08 | 28 |
4 | Anant Desai | 59000 | 27-08-2018 | 29 |
I risultati ottenuti dalla query precedente mostrano che i record vengono visualizzati in base all'ordine crescente del giorno di nascita del dipendente.
Esempio 8:
Scrivi una query per visualizzare tutti i dettagli dei dipendenti disposti in ordine crescente in base al mese di nascita del dipendente.
Domanda:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB);
ID | Nome | Stipendio | Data_iscrizione | DOB |
---|---|---|---|---|
1 | Rohit di più | 50000 | 2020-02-08 | 28/01/1991 18:06:08 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 20/02/1983 12:18:45 |
5 | Krishna Sharma | 48000 | 23-10-2010 | 21/03/1999 02:14:56 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 15/05/1990 19:10:00 |
4 | Anant Desai | 59000 | 27-08-2018 | 29/06/1978 15:45:13 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 02-08-1998 13:00:01 |
I risultati ottenuti dalla query precedente mostrano che i record vengono visualizzati in base all'ordine crescente del mese di nascita del dipendente.
c array di stringhe
Esempio 9:
Scrivi una query per visualizzare tutti i dettagli dei dipendenti disposti in ordine crescente in base al mese di assunzione del dipendente.
Domanda:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (Joining_Date);
Poiché volevamo ordinare i record in ordine crescente in base al mese di assunzione dei dipendenti, abbiamo applicato la clausola ORDER BY. La funzione MONTH () viene applicata alla colonna 'Joining_Date' per estrarre solo il mese di adesione da Joining_Date.
Otterrai il seguente output:
ID | Nome | Stipendio | Data_iscrizione | DOB |
---|---|---|---|---|
2 | Kunal Mohit | 34000 | 2021-01-01 | 15/05/1990 19:10:00 |
1 | Rohit di più | 50000 | 2020-02-08 | 28/01/1991 18:06:08 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 20/02/1983 12:18:45 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 02-08-1998 13:00:01 |
4 | Anant Desai | 59000 | 27-08-2018 | 29/06/1978 15:45:13 |
5 | Krishna Sharma | 48000 | 23-10-2010 | 21/03/1999 02:14:56 |
I risultati ottenuti dalla query precedente mostrano che i record vengono visualizzati in base all'ordine crescente del mese di assunzione del dipendente.