SQL ORDER BY: come ordinare correttamente i risultati delle tue query

Con SQL ORDER BY è possibile organizzare i risultati di ricerca delle tue query di dati in ordine crescente o decrescente in base alle tue esigenze. Ordinando i dati in righe e colonne nella tua tabella di destinazione puoi aumentarne la chiarezza e la leggibilità. In questo modo è possibile ottimizzare e velocizzare le analisi dei dati e le query su record di dati complessi.

Che cos’è il comando SQL ORDER BY?

Se desideri organizzare dati e risultati di record di dati semplici o complessi nella tabella di destinazione, utilizza il comando ORDER BY di SQL. Questo comando ti permette di definire un ordine crescente o decrescente nella query di dati per i tuoi dati di destinazione. Con ORDER BY ottieni quindi maggiore chiarezza e leggibilità ordinando i risultati della query. Come impostazione predefinita, il comando mette i dati della query in ordine crescente, ossia dalla A alla Z o dal valore più piccolo a quello più grande. Se preferisci un ordine diverso, indica la relativa parola chiave opzionale ASC (Ascend) per crescente o DESC (Descend) per decrescente.

È possibile definire soltanto una colonna o anche più colonne per i risultati. Grazie alla chiarezza di presentazione, ORDER BY svolge un ruolo importante per ottenere query di dati veloci e ordinate. Questo comando è utilizzato spesso in combinazione con SQL SELECT, SQL WHERE e, a seconda dei casi, con altri operatori SQL o funzioni come SQL GROUP BY.

Consiglio

Vorresti saperne di più su SQL, ma le tue conoscenze non bastano? La nostra introduzione a SQL mediante esempi ti aiuterà a entrare nel mondo di questo popolare linguaggio per database.

La sintassi di SQL ORDER BY

La sintassi di ORDER BY si presenta così:

SELECT  colonnaA, colonnaB, …  oppure *
FROM  Tabella
ORDER BY  colonnaA, colonnaB, …  (opzionale: ASC oppure DESC)
sql
N.B.

Se indichi una sola colonna dopo ORDER BY, come risultato ottieni una colonna con i risultati messi in ordine. Se indichi più colonne, la clausola ordina prima tutti i risultati in base alla colonna A. In presenza di voci identiche in righe diverse, la clausola ordina le voci in base alla colonna B.

È possibile espandere la sintassi di SQL ORDER BY con gli operatori o i parametri desiderati. Con una clausola WHERE puoi definire ad esempio ulteriori condizioni per specificare meglio i risultati della query. La sintassi in combinazione con WHERE si presenta così:

SELECT  colonnaA, colonnaB, …  oppure *
FROM  Tabella
WHERE  colonnaA  =  'Condizione di ricerca'
ORDER BY  colonnaA, colonnaB, …  (opzionale: ASC oppure DESC)
sql

È possibile utilizzare i seguenti parametri:

  • SELECT: con SQL SELECT puoi definire i dati da analizzare. Se inserisci un asterisco *, la query vale per l’intero record di dati; se invece inserisci i nomi delle colonne, la ricerca riguarda le colonne selezionate.
  • FROM: definisce la tabella in cui eseguire la query dei dati.
  • WHERE: la clausola opzionale SQL WHERE definisce una condizione di ricerca specifica in base alla quale vengono ordinati i risultati. Qui è possibile utilizzare ulteriori operatori di confronto come = oppure operatori come SQL LIKE o SQL NOT.
  • ORDER BY: definisce il valore in base al quale ordinare i risultati. Se non indichi né ASCDESC, il comando mette automaticamente i risultati in ordine alfabetico o numerico decrescente.
N.B.

La clausola ORDER BY ordina i valori NULL automaticamente o in base all’ordine scelto, a seconda del database. In SQLite, MySQL e SQL Server, il comando gestisce i valori NULL come valori più bassi: in ordine crescente si trovano quindi all’inizio. In Oracle e PostgreSQL, i valori NULL sono considerati come valori più alti: in ordine crescente sono quindi alla fine.

Possibilità di applicazione di ORDER BY

Alcune applicazioni pratiche di SQL ORDER BY sono:

  • Ordinamento di informazioni sui prodotti in base al nome del prodotto, alla categoria o al prezzo
  • Ordinamento di transazioni per importo, data o nominativo
  • Organizzazione di ordini per quantità o valutazioni
  • Ordinamento di dipendenti per stipendio, incarichi prestazioni o reparto
  • Elenco delle scorte a magazzino per quantità o nome
  • Ordinamento di consegne per codice postale o numero di tracking
  • Ordinamento di elenchi dei clienti per regione o età
Consiglio

Un sistema di gestione di database scalabile e sicuro ti permette di beneficiare di tempi di accesso più brevi, prestazioni su misura e sicurezza in caso di anomalie. Esattamente le caratteristiche offerte dall’hosting SQL server di IONOS, con protezione dei dati conforme agli standard europei.

Server virtuali (VPS)
Virtualizzazione totale con accesso root completo
  • Traffico illimitato e fino a 1 Gbit/s di larghezza di banda
  • Storage SSD NVMe veloce
  • Plesk Web Host Edition incluso

Esempi pratici per SQL ORDER BY

Nelle parti seguenti ti mostriamo tre pratici esempi di applicazione per comprendere meglio il funzionamento di ORDER BY.

Ordinamento di prodotti in base al prezzo

Se desideri disporre i prodotti della categoria “Bellezza” di una tabella “Prodotti” in base al prezzo in ordine crescente, utilizza FROM per indicare la categoria da usare per l’ordinamento. Con ORDER BY e ASC puoi stabilire che l’ordinamento segua il “Prezzo” in ordine crescente. Procedi come segue:

SELECT  *
FROM  Prodotti
WHERE  categoria  = 'Bellezza'
ORDER BY  Prezzo  ASC;
sql

Filtraggio di gruppi di clienti

Supponiamo che in una tabella “Clienti” desideri mettere i nomi di tutti i clienti in Italia in ordine alfabetico applicando la condizione di ordinamento “Paese”. Per metterli in ordine crescente dalla A alla Z, non è necessario aggiungere la clausola ASC. Se invece desideri metterli in ordine dalla Z alla A, aggiungi DESC al comando SQL ORDER BY:

SELECT  *
FROM  Clienti
WHERE  Paese = 'Italia'
ORDER BY  Nome  DESC;
sql

Ordinamento con più condizioni

Nell’esempio seguente, in una tabella “Prodotti” desideri mettere le voci della categoria “Elettronica” in ordine alfabetico crescente. Se la quantità ordinata è identica, allora organizzerai gli ordini per regione. La sintassi si presenta così:

SELECT  *
FROM  Prodotti
WHERE  Categoria  =  'Elettronica'
ORDER BY  Quantità ASC, Regione  DESC;
sql

Alternative a SQL ORDER BY

Un’alternativa che svolga la stessa funzione di ORDER BY non esiste. Tuttavia, tra i comandi SQL che sono utilizzati spesso in combinazione con SQL ORDER BY troviamo anche SQL GROUP BY. Mentre GROUP BY permette ad esempio di raggruppare per categoria i record di dati presenti in colonne, ORDER BY ti consente anche di ordinarli.

Esempio: vorresti raggruppare i valori degli ordini dei clienti per Paese e, successivamente, metterli in ordine crescente in base alla quantità media ordinata con la funzioni di aggregazione SQL AVG. La sintassi si presenta così:

SELECT  Paese, AVG(Quantità)
FROM  Clienti
WHERE  Categoria = 'Elettronica'
GROUP BY  Paese
ORDER BY  AVG(Quantità) ASC;
sql

Con la clausola SQL HAVING puoi filtrare ulteriormente i record di dati ordinati in base a condizioni e criteri di ricerca definiti. Inoltre, con LIMIT è possibile limitare l’insieme risultato a una quantità desiderata.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top