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
DISTINCT
klausulen 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