ORDER BY

Completato

La ORDER BY clausola viene usata in SQL per ordinare il set di risultati di un'istruzione SELECT . Ciò significa che dispone le righe dell'output in base ai valori di una o più colonne.

Questo è essenziale per organizzare i dati in modo da semplificare l'interpretazione e l'uso. È possibile specificare una o più colonne da ordinare e avere il controllo sull'ordinamento: crescente (dal più piccolo al più grande o da A a Z) o decrescente (dal più grande al più piccolo o dalla Z alla A). Senza ORDER BY, l'ordine delle righe restituite è imprevedibile.

Ordinamento crescente (impostazione predefinita)

SELECT * 
FROM sales.products
ORDER BY price;

Questa query recupera i prodotti ordinati in base al prezzo in ordine crescente, ovvero il comportamento predefinito di ORDER BY.
Sebbene ridondante, è possibile aggiungere ASC in modo esplicito alla fine della query, che potrebbe migliorare la leggibilità.

Per modificare l'ordine, è necessario indicare che in modo esplicito, come illustrato nell'esempio seguente.

Ordinamento in ordine decrescente

SELECT * 
FROM sales.products
ORDER BY price DESC;

Questa query recupera i prodotti ordinati in base al prezzo in ordine decrescente.

Ordinamento in base a più colonne

SELECT * 
FROM sales.customers
ORDER BY country, city;

Questa query recupera tutte le colonne (*) dalla sales.customers tabella e quindi ordina le righe risultanti. L'ordinamento viene eseguito in due livelli: - Primo, i risultati vengono ordinati alfabeticamente in base alla colonna paese. Ciò significa che tutti i clienti provenienti da "Argentina" verranno raggruppati insieme, seguiti dai clienti provenienti da "Austria" e così via. - All'interno di ogni gruppo di clienti dello stesso paese, i risultati vengono ordinati in ordine alfabetico in base alla colonna città. Quindi, se si hanno più clienti provenienti da "Germania", verranno ordinati in base ai nomi della città (ad esempio, "Aachen" prima di "Berlino").

In sostanza, questa query fornisce un elenco di clienti organizzato principalmente per country e quindi, all'interno di ogni country, organizzato per city. In questo modo è facile trovare i clienti da un'area specifica.
Inoltre, la combinazione di questo approccio con ASC o DESC modificatori consente il controllo completo sulla direzione di ordinamento per ogni colonna.

SELECT * 
FROM sales.customers
ORDER BY country ASC, city DESC;

Questa interrogazione ordina i paesi in ordine crescente, mentre organizza le città all'interno di ogni paese in ordine decrescente.