Summary: I denne vejledning lærer du, hvordan du bruger Oracle SELECT DISTINCT
-erklæringen til at søge efter separate data fra tabeller.
Indledning til Oracle SELECT DISTINCT-erklæringen
Den DISTINCT
klausul bruges i en SELECT
-erklæring til at filtrere dobbelte rækker i resultatmængden. Den sikrer, at de returnerede rækker er unikke for den eller de kolonner, der er angivet i SELECT
-klausulen.
Det følgende illustrerer syntaksen for SELECT DISTINCT
-erklæringen:
I denne erklæring sammenlignes værdierne i column_1
i table
for at bestemme dubletterne.
For at hente unikke data baseret på flere kolonner skal du blot angive kolonnelisten i SELECT
-klausulen på følgende måde:
I denne syntaks bruges kombinationen af værdierne i column_1
, column_2
og column_3
til at bestemme dataenes entydighed.
Klausulen DISTINCT
kan kun bruges i SELECT
-erklæringen.
Bemærk, at DISTINCT
er synonymt med UNIQUE
, som ikke er SQL-standard. Det er en god praksis altid at bruge DISTINCT
i stedet for UNIQUE
.
Oracle SELECT DISTINCT eksempler
Lad os se på nogle eksempler på brug af SELECT DISTINCT
for at se, hvordan det fungerer.
A) Oracle SELECT DISTINCT eksempel på én kolonne
Se tabellen contacts
i eksempeldatabasen:
Det følgende eksempel henter alle kontaktfornavne:
Søgningen returnerede 319 rækker, hvilket indikerer, at tabellen contacts
har 319 rækker.
For at få unikke kontaktfornavne tilføjer du nøgleordet DISTINCT
til ovenstående SELECT
-angivelse på følgende måde:
Nu har resultatmængden 302 rækker, hvilket betyder, at 17 dubletter er blevet fjernet.
B) Oracle SELECT DISTINCT flere kolonner eksempel
Se følgende order_items
tabel:
Den følgende anvisning vælger distinkt produkt id og mængde fra order_items
tabellen:
Det følgende illustrerer resultatet:
I dette eksempel bruges begge værdier kolonnerne product_id
og quantity
til at evaluere entydigheden af rækkerne i resultatsættet.
C) Oracle SELECT DISTINCT og NULL
Den DISTINCT
behandler NULL-værdier som værende dubletter af hinanden. Hvis du bruger SELECT DISTINCT
-anvisningen til at forespørge data fra en kolonne, der har mange NULL-værdier, vil resultatsættet kun indeholde én NULL-værdi.
Se locations
-tabellen i eksempeldatabasen.
Den følgende anvisning henter data fra kolonnen state, som har mange NULL-værdier:
Resultat:
Som du kan se, returneres der kun én NULL-værdi.
Bemærk, at hvis du vil anvende DISTINCT
på nogle kolonner, mens du springer andre kolonner over, skal du i stedet bruge GROUP BY
-klausulen.
I denne vejledning har du lært at bruge SELECT DISTINCT
-anvisningen til at få unikke data baseret på en eller flere kolonner.
- Har denne vejledning været nyttig?
- JaNej