Oracle SELECT DISTINCT

Sammanfattning: I den här handledningen lär du dig hur du använder Oracle SELECT DISTINCT-anvisningen för att fråga efter distinkta data från tabeller.

Introduktion till Oracle SELECT DISTINCT-anvisningen

DISTINCTklausulen används i en SELECT-anvisning för att filtrera duplicerade rader i resultatmängden. Den säkerställer att de rader som returneras är unika för den eller de kolumner som anges i SELECT-klausulen.

Nedan illustreras syntaxen för SELECT DISTINCT-anvisningen:

I den här anvisningen jämförs värdena i column_1 i table för att fastställa dubbletter.

För att hämta unika data baserat på flera kolumner behöver du bara ange kolumnlistan i SELECT-klausulen enligt följande:

I den här syntaxen används kombinationen av värdena i column_1, column_2 och column_3 för att avgöra om data är unika.

Klausulen DISTINCT kan endast användas i SELECT-angivelsen.

Notera att DISTINCT är en synonym till UNIQUE som inte är SQL-standard. Det är bra att alltid använda DISTINCT i stället för UNIQUE.

Oracle SELECT DISTINCT exempel

Vi tittar på några exempel på hur SELECT DISTINCT används för att se hur det fungerar.

A) Oracle SELECT DISTINCT exempel på en kolumn

Se tabellen contacts i exempeldatabasen:

Följande exempel hämtar alla förnamn på kontaktpersoner:

Frågan returnerade 319 rader, vilket indikerar att tabellen contacts har 319 rader.

För att få fram unika kontaktförnamn lägger du till nyckelordet DISTINCT till ovanstående SELECT-angivelse enligt följande:

Nu har resultatmängden 302 rader, vilket innebär att 17 dubbla rader har tagits bort.

B) Oracle SELECT DISTINCT multiple columns example

Se följande tabell order_items:

Följande anvisning väljer distinkt produkt-id och kvantitet från tabellen order_items:

Sedan visas resultatet:

I det här exemplet används båda värdena i kolumnerna product_id och quantity för att utvärdera entydigheten hos raderna i resultatuppsättningen.

C) Oracle SELECT DISTINCT och NULL

Den DISTINCT behandlar NULL-värden som dubbletter av varandra. Om du använder SELECT DISTINCT-anvisningen för att söka data från en kolumn som har många NULL-värden kommer resultatuppsättningen att innehålla endast ett NULL-värde.

Se locations-tabellen i exempeldatabasen.

Följande uttalande hämtar data från kolumnen state, som har många NULL-värden:

Resultat:

Som du kan se returneras endast ett NULL-värde.

Observera att om du vill tillämpa DISTINCT på vissa kolumner, samtidigt som du hoppar över andra kolumner, bör du använda GROUP BY-klausulen istället.

I den här handledningen har du lärt dig hur du använder SELECT DISTINCT-anvisningen för att få fram unika data baserade på en eller flera kolumner.

  • Har du haft någon nytta av den här handledningen?
  • JaNej

Lämna ett svar

Din e-postadress kommer inte publiceras.