Introduzione alla clausola ORDER BY in SQL
La clausola ORDER BY in SQL ci aiuta a classificare i nostri dati in ordine crescente o decrescente, a seconda delle colonne delle nostre tabelle. ORDER BY è la parola chiave utilizzata nella nostra query per aiutarci a ordinare i dati. Per impostazione predefinita, alcuni database classificano i risultati restituiti dalla query in ordine crescente. Per ordinare i dati presenti nei record in ordine decrescente, utilizziamo la parola chiave DESC nella nostra query. Abbiamo anche la parola chiave ASC per classificare i dati in ordine crescente, anche se principalmente non li usiamo a causa delle impostazioni predefinite del database.
Parametri della clausola ORDER BY in SQL
- nome_colonna: indica il nome della colonna che desideriamo recuperare in base alla disposizione dei dati.
- table_name: indica il nome della tabella da cui ottenere i record. Dobbiamo avere almeno un nome di tabella in questo parametro.
- Condizione WHERE: questo è un parametro opzionale. La clausola WHERE contiene le condizioni che dobbiamo soddisfare affinché i dati vengano scelti.
- ASC : questa è la parola chiave utilizzata per ordinare i dati della colonna in ordine crescente. Se non viene menzionata alcuna parola chiave, i dati vengono ordinati in ordine crescente per impostazione predefinita.
- DESC: questa è la parola chiave utilizzata per ordinare i dati della colonna in ordine decrescente.
- |: Questo è solo un indicatore di "OR", poiché dobbiamo utilizzare ASC o DESC nella nostra query di conseguenza per i risultati.
ORDINA PER Clausola
La sintassi di ORDER BY è:
SELECT column_name(s)
FROM table_name(s)
(WHERE condition) (ORDER BY column1, column2, .. columnN) (ASC | DESC);
Sintassi per l'ordinamento dei dati in base a una singola colonna
Per ordinare i dati della tabella in base a una singola colonna in ordine crescente o decrescente, è possibile utilizzare le parole chiave ASC o DESC. Nel nostro esempio, ordineremo i dati in ordine crescente utilizzando quindi la parola chiave ASC.
Sintassi
SELECT * FROM table_name ORDER BY column_name ASC
La sintassi per ordinare i dati in base a diverse colonne
Per ordinare i dati della tabella in base a più colonne in ordine crescente o decrescente, è possibile utilizzare le parole chiave ASC o DESC. Per menzionare le diverse colonne in base alle quali verranno ordinati i dati, è necessario menzionare i nomi delle colonne separate dall'operatore virgola (, ). Nel nostro esempio, ordineremo i dati in ordine crescente utilizzando quindi la parola chiave ASC.
Sintassi
SELECT * FROM table_name ORDER BY column1 ASC, column2 ASC
Esempi di clausola ORDER BY
Esaminiamo vari esempi per comprendere meglio la clausola ORDER BY.
1. Esempio per ordinare i risultati in un ordine crescente
Per classificare i risultati in ordine crescente, possiamo usare la parola chiave ASC. Se non è stata fornita alcuna parola chiave, ASC o DESC, l'ordine di ordinamento predefinito è crescente. Cerchiamo di capirlo con l'aiuto di un esempio. Abbiamo una tabella dei dipendenti.
ID Dipendente | EmployeeLastName | EmployeeFirstName | E-mail identificativo utente |
001 | Donald | Jo | |
002 | fabbro | Jamie | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
005 | Tommaso | sortita | |
006 | Marrone | Dan |
Quando proviamo a disporre i risultati in ordine crescente del cognome del Dipendente, possiamo usare la seguente dichiarazione e il risultato che segue viene visualizzato nella tabella dopo.
SELECT *
FROM Employee
ORDER BY EmployeeLastName;
Risultato
ID Dipendente | EmployeeLastName | EmployeeFirstName | E-mail identificativo utente |
006 | Marrone | Dan | |
001 | Donald | Jo | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
002 | fabbro | Jamie | |
005 | Tommaso | sortita |
In questo esempio vengono restituiti tutti i record della tabella Employee ordinati in ordine crescente in base al campo EmployeeLastName. Possiamo anche usare la parola chiave ASC come segue, per ottenere lo stesso risultato.
SELECT EmployeeID, EmployeeLastName
FROM Employee
WHERE EmployeeID '003'
ORDER BY 1 DESC;
2. Esempio per ordinare i risultati in ordine decrescente
Usiamo la parola chiave DESC quando vogliamo ordinare i nostri dati in ordine decrescente, nella nostra clausola ORDER BY. Cerchiamo di capirlo con l'aiuto di un esempio. Abbiamo la stessa tabella Employee contenente i seguenti dati.
ID Dipendente | EmployeeLastName | EmployeeFirstName | E-mail identificativo utente |
001 | Donald | Jo | |
002 | fabbro | Jamie | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
005 | Tommaso | sortita | |
006 | Marrone | Dan |
Abbiamo bisogno solo di dipendenti il cui EmployeeID sia maggiore di 2 e abbiamo bisogno che i nostri dati siano ordinati in ordine decrescente. Usiamo la seguente istruzione SQL per lo stesso e otteniamo la tabella del set di risultati con solo 4 record.
SELECT *
FROM Employee
WHERE EmployeeID > 002
ORDER BY EmployeeID DESC;
Risultato:
ID Dipendente | EmployeeLastName | EmployeeFirstName | E-mail identificativo utente |
006 | Marrone | Dan | |
005 | Tommaso | sortita | |
004 | Reynolds | Andy | |
003 | Jones | Amy |
3. Esempio per ordinare i risultati in base alla loro posizione relativa
Possiamo anche organizzare i nostri dati in base alla posizione relativa delle colonne, dove 1 rappresenta il primo campo, 2 rappresenta il secondo campo, 3 rappresenta il terzo campo e così via. Proviamo a disporre i dati nella nostra tabella Dipendente in base alle posizioni relative.
ID Dipendente | EmployeeLastName | EmployeeFirstName | |
001 | Donald | Jo | |
002 | fabbro | Jamie | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
005 | Tommaso | sortita | |
006 | Marrone | Dan |
Usando l'istruzione SQL come segue, possiamo disporre i dati in ordine decrescente di EmployeeID. Abbiamo anche affermato che sono necessarie solo due colonne dalla tabella, ovvero EmployeeID e EmployeeLastName, insieme all'utilizzo della clausola WHERE per menzionare che non vogliamo alcuna riga contenente EmployeeID 003.
SELECT EmployeeID, EmployeeLastName
FROM Employee
WHERE EmployeeID '003'
ORDER BY 1 DESC;
Risultato
ID Dipendente | EmployeeLastName |
006 | Marrone |
005 | Tommaso |
004 | Reynolds |
002 | fabbro |
001 | Donald |
Poiché la colonna nella posizione 1 è EmployeeID, il set di risultati viene ordinato in base a EmployeeID.
Conclusione
In SQL, l'istruzione SELECT non restituisce i dati in alcun ordine specifico. Per garantire un ordine particolare, utilizziamo la clausola ORDER BY. ORDINA PER ordina in base a una o più colonne. I record vengono restituiti in ordine crescente o decrescente. Se la parola chiave ASC o DESC non è stata fornita, i risultati verranno classificati in ordine crescente.
Articolo raccomandato
Questa è stata una guida alla clausola ORDER BY in SQL. Qui discutiamo i parametri e i diversi esempi della clausola ORDER BY insieme alla sintassi. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -
- Vantaggi di NoSQL
- Strumenti di gestione SQL
- Funzioni stringa T-SQL
- Tipi di dati PostgreSQL
- Diversi tipi di dati SQL con esempi