Oracle SELECT DISTINCT

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.