Questo tutorial SQL si concentra sulla parola chiave DISTINCT in Oracle, e fornisce spiegazioni, esempi ed esercizi. Per gli esercizi di questa lezione, usa questo link.
Questo tutorial fa parte di diversi post che spiegano come scrivere query di base in Oracle. Per leggere altri post riguardanti questo argomento, usate i seguenti link:
- Scrivere istruzioni di base SQL SELECT
- Operatori aritmetici SQL
- Alias di colonne SQL
- Concatenazione di stringhe SQL
- Parola chiave DISTINCT SQL
La parola chiave DISTINCT Oracle
La visualizzazione di default delle query Oracle è di tutte le righe, incluse quelle duplicate. La parola chiave DISTINCT di Oracle nella clausola SELECT è usata per eliminare le righe duplicate e visualizzare una lista unica di valori.
Per esempio: supponiamo di avere una tabella Clienti, che contiene una lista di clienti di diverse città: 40 clienti da Londra, 30 da Liverpool e 30 da Manchester. Vi è stato chiesto di visualizzare l’elenco delle città in cui risiedono questi clienti:
SELECT cityFROM customers
Questa dichiarazione Oracle non è molto utile poiché recupera 100 righe (Londra ritorna 40 volte, Liverpool ritorna 30 volte, e Manchester ritorna 30 volte), mentre la nostra intenzione era di visualizzare solo 3 righe.
Per risolvere questo problema e recuperare solo valori unici, utilizzare la parola chiave DISTINCT di Oracle:
SELECT DISTINCT column_nameFROM table_name SELECT DISTINCT cityFROM customers
Il risultato:
CITY------LondonLiverpoolManchester
Nota: La parola chiave DISTINCT di Oracle deve essere inclusa immediatamente dopo la parola chiave SELECT di Oracle.
Dichiarazione Oracle DISTINCT su colonne multiple
Dopo la parola chiave Oracle DISTINCT, è possibile specificare più di una colonna. Il qualificatore Oracle DISTINCT influisce su tutte le colonne selezionate, così facendo, il risultato visualizzerà la combinazione unica di valori dalle diverse colonne. Per esempio, una lista di clienti da diverse città e paesi:
Nome del cliente | Città | Paese |
John Smith | Liverpool | Inghilterra |
Sophia Williams | Londra | Inghilterra |
Emma Miller | Liverpool | Inghilterra |
Olivia Wilson | Parigi | Francia |
Logan Davis | Parigi | Francia |
Puoi vedere che ci sono due clienti di Liverpool-Inghilterra, due clienti da Parigi-Francia, e un altro cliente da Londra-Inghilterra.
Eseguendo l’istruzione Oracle DISTINCT sulla colonna Country si ottengono 2 righe (Inghilterra, Parigi).
SELECT DISTINCT countryFROM customers
Eseguendo l’istruzione Oracle DISTINCT sulla colonna City si ottengono 3 righe (Liverpool, Londra, Parigi).
SELECT DISTINCT city FROM customers
Se si esegue l’istruzione Oracle DISTINCT su entrambe le colonne Città e Paese:
SELECT DISTINCT city , countryFROM customers
Sono recuperati tre risultati – Liverpool Inghilterra, Londra Inghilterra, Parigi Francia.