SQL ORDER BY





SQL > Comandi SQL > Order By

Finora, abbiamo visto come recuperare i dati presenti in una tabella utilizzando i comandi SELECT e WHERE. Tuttavia, spesso può risultare necessario elencare i dati in uscita in base a un ordine determinato. L’ordine potrebbe essere ascendente o discendente oppure potrebbe basarsi su un valore numerico o di testo. In tal caso, per raggiungere il nostro obiettivo è possibile utilizzare la parola chiave ORDER BY.

La sintassi per un’istruzione ORDER BY è la seguente:

SELECT "nome_di_colonna"
FROM "nome_della_tabella"
[WHERE "condizionale"]
ORDER BY "nome_di_colonna" [ASC, DESC];

Le parentesi quadre “[ ]” indicano che l’istruzione WHERE è facoltativa. Tuttavia, se esiste una clausola WHERE, essa viene prima della clausola ORDER BY. ASC significa che i risultati saranno mostrati in ordine ascendente, mentre DESC significa che i risultati saranno mostrati in ordine discendente. Se non è stata specificata alcuna preferenza, il valore predefinito è ASC.

L’ordinamento può essere realizzato su più colonne. In tal caso, la clausola ORDER BY precedentemente descritta diviene:

ORDER BY "nome di colonna 1" [ASC, DESC], "nome di colonna 2" [ASC, DESC]

Supponendo che sia stato scelto l’ordinamento di tipo ascendente per entrambe le colonne, rispetto alla colonna 1 l’output verrà ordinato in modo ascendente. Se è presente una colonna equivalente per il valore della colonna 1, si otterrà un ordinamento di tipo ascendente per la colonna 2.

Ad esempio, si potrebbe desiderare di elencare in ordine discendente i contenuti della tabella Store_Information in base alla quantità di dollari:

Tabella Store_Information
Store_NameSalesTxn_Date
Los Angeles150005-Jan-1999
San Diego25007-Jan-1999
San Francisco30008-Jan-1999
Boston70008-Jan-1999

digitare:

SELECT Store_Name, Sales, Txn_Date
FROM Store_Information
ORDER BY Sales DESC;

Risultato:

Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
Boston 700 08-Jan-1999
San Francisco 300 08-Jan-1999
San Diego 250 07-Jan-1999

In aggiunta al nome della colonna, è possibile utilizzare la posizione della colonna (in base all’interrogazione SQL) per indicare a quale colonna si desidera applicare la clausola ORDER BY. La prima colonna è 1, la seconda colonna è 2 e così via. Nell’esempio precedente, mediante il seguente comando si ottengono gli stessi risultati:

SELECT Store_Name, Sales, Txn_Date
FROM Store_Information
ORDER BY 2 DESC;

SQL Funzioni >>

Questa pagina è stata aggiornata l'ultima volta il 27/06/2022



Copyright © 2024   1keydata.com   Tutti i diritti riservati