Introduzione a DISTINCT in Oracle
La parola chiave DISTINCT nel database Oracle separa o filtra le righe duplicate nel set di risultati restituito dall’istruzione SELECT (il set di risultati set contiene la colonna o le colonne presenti nell’istruzione SELECT) in modo che la colonna o le colonne restituite dalla query contengano tutti i valori o i record che non sono duplicati e sono unici l’uno con l’altro poiché la parola chiave DISTINCT confronta ogni valore della colonna o delle colonne presenti nel set di risultati restituito dalla query con ogni altro.
Sintassi
Inizia il tuo corso gratuito di Data Science
Hadoop, Data Science, Statistica & altri
Vedremo ora la sintassi della parola chiave distinct in Oracle. Abbiamo due opzioni in questo caso per la sintassi. La prima sintassi è di usare la parola chiave distinct senza condizioni e la seconda sintassi è di usare la parola chiave distinct con condizioni.
Sintassi senza condizioni: Select DISTINCT(expressions) from table_names;
Sintassi con la condizione:Select DISTINCT(expressions) from table_names ;
Parametri
Vediamo ora i vari parametri usati nelle due sintassi precedenti.
- espressioni: forniamo i nomi delle colonne o espressioni che vogliamo eseguire.
- nomi_tabella: Forniamo i nomi delle tabelle da cui vogliamo i record. Informazione importante da notare qui è che ci dovrebbe essere almeno un nome di tabella dopo la clausola.
- : è opzionale Se forniamo la condizione where allora recupereremo i valori dopo l’esecuzione della query solo se la condizione che è stata menzionata è soddisfatta.
Nota: Un’informazione importante da tenere a mente è che la parola chiave DISTINCT considera il valore nullo anche come un valore unico. Quindi, nel caso in cui abbiamo valori nulli in una colonna e stiamo usando la parola chiave DISTINCT per ottenere valori unici, allora verrà visualizzato anche il valore NULL nell’output.
Come usare DISTINCT in Oracle?
Ora abbiamo discusso cos’è una parola chiave DISTINCT in Oracle, la sintassi della parola chiave DISTINCT e i vari parametri usati nella sintassi.
Ora vedremo vari esempi per imparare come usare efficacemente DISTINCT in Oracle. Prima di passare agli esempi, useremo la tabella EMPLOYEE già creata nel database. La tabella consiste di cinque colonne che sono NAME, VEHICLE_NAME, EMPLOYEE_ID, VEHICLE_ID e CITY. Di seguito è riportato lo screenshot dei valori presenti nella tabella dei dipendenti. La query che useremo per questo è l’istruzione SELECT di base
SELECT * from employee;
Eseguendo in SQL developer otteniamo tutti i valori come mostrato di seguito.
Output: Employee table
Ora cominciamo con gli esempi.
1. Valori unici in una colonna senza condizioni
In questo esempio, useremo DISTINCT per trovare i valori unici in una particolare colonna di una tabella senza avere condizioni. Come esempio, troveremo i valori unici presenti nella colonna veicolo della tabella degli impiegati. La query è mostrata qui sotto:
Codice:
select DISTINCT(vehicle_name) from employee;
Output:
Nella query sopra come potete vedere abbiamo fornito il nome della colonna e il nome della tabella. Eseguendo la query di cui sopra in SQL developer otteniamo il seguente output.
2. Valori unici in una colonna con condizione
In questo esempio, troveremo valori unici in una colonna proprio come l’esempio precedente ma con una leggera modifica. In questo, estrarremo i valori unici in base a qualche condizione. Come esempio otteniamo i valori unici della colonna nome del veicolo dalla tabella dei dipendenti quando la città non è Kolkata. La query per lo stesso è fornita qui sotto.
Codice:
select DISTINCT(VEHICLE_NAME) from employee where CITY != 'KOLKATA';
Output:
Se vedete la query sopra la query dovrebbe restituire i valori che soddisfano la condizione where. Eseguendo la query di cui sopra in SQL developer otteniamo l’output seguente.
Come potete vedere nell’esempio precedente avevamo sei valori unici mentre nel secondo esempio abbiamo cinque valori unici perché abbiamo aggiunto una condizione specifica nel secondo esempio.
3. Valori unici da colonne multiple
In questo esempio, stiamo andando a trovare valori unici su colonne multiple usando DISTINCT. Quindi gli esempi precedenti avevano usato colonne singole, ma in questo caso, useremo colonne multiple. Per esempio, supponiamo di voler trovare i valori unici sia del nome del veicolo che della città e i risultati dovrebbero essere in ordine crescente in base alla colonna città. Guardiamo la query per lo stesso sotto.
Codice:
select DISTINCT VEHICLE_NAME,CITY from employee ORDER BY CITY ASC;
Output:
Nella query di cui sopra prima, i dati vengono estratti in ordine crescente in base alla colonna city e poi entrambi i valori nelle colonne vehicle name e city vengono utilizzati per ottenere le coppie uniche. Eseguendo la query di cui sopra in SQL developer otteniamo l’output seguente.
4. DISTINCT con valori NULL
Prima nell’articolo, avevamo discusso che DISTINCT tratta i valori NULL come valori unici quindi se abbiamo una colonna con valori nulli in essa. Sarà trattato come un valore unico. Per esempio, abbiamo valori nulli nella colonna CITY che potete vedere nello screenshot fornito all’inizio dell’articolo dove sono mostrati tutti i valori della tabella dei dipendenti. Quindi, applicheremo DISTINCT sulla colonna CITY per scoprire l’impatto dei valori nulli sul risultato. La query per la stessa è mostrata qui sotto.
Codice:
select DISTINCT CITY from employee;
Output:
Eseguendo la query di cui sopra in SQL developer otteniamo il seguente output.
Come possiamo vedere l’output mostra null come un valore distinto. Quindi questo dimostra che DISTINCT tratta null come un valore unico.
Conclusione – DISTINCT in Oracle
In questo articolo, abbiamo discusso la parola chiave DISTINCT in oracolo, le sintassi usate per usare DISTINCT nelle query, i parametri usati in quelle sintassi e poi attraverso vari esempi siamo arrivati a sapere come possiamo usare DISTINCT in oracolo per risolvere i nostri compiti richiesti.
Articoli consigliati
Questa è una guida a DISTINCT in Oracle. Qui discutiamo la parola chiave DISTINCT in Oracle, le sintassi usate per usare DISTINCT nei codici e nell’output. Puoi anche passare attraverso i nostri altri articoli correlati per saperne di più –
- Joins in Oracle
- Che cos’è Oracle Database
- Funzioni Stringa Oracle
- Oracle Warehouse Builder
- Guida alle principali versioni di Oracle
- ORDER BY in MySQL | Come funziona?
- Guida a questa parola chiave in C#