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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.