Introduktion till DISTINCT i Oracle
DISTINCT-nyckelordet i Oracle-databasen separerar eller filtrerar dubbletter av rader i den resultatuppsättning som returneras av SELECT-angivelsen (resultat uppsättning innehåller kolumnen/kolumnerna som finns i SELECT-anvisningen) så att kolumnen eller kolumnerna som returneras av frågan innehåller alla värden eller poster som inte är dubbletter och som är unika för varandra eftersom DISTINCT-nyckelordet jämför varje värde av kolumnen/kolumnerna som finns i den resultatuppsättning som returneras av frågan med varandra.
Syntax
Starta din kostnadsfria kurs i datavetenskap
Hadoop, datavetenskap, statistik & andra
Vi kommer nu att titta på syntaxen för nyckelordet distinct i Oracle. Vi har två alternativ i det här fallet när det gäller syntaxen. Den första syntaxen är att använda distinkt nyckelord utan villkor och den andra syntaxen är att använda distinkt nyckelord med villkor.
Syntax utan villkor: Select DISTINCT(expressions) from table_names;
Syntax med villkoret:Select DISTINCT(expressions) from table_names ;
Parametrar
Vi kommer nu att titta på de olika parametrarna som används i de två ovanstående syntaxerna.
- uttryck: Vi anger de kolumnnamn eller uttryck som vi vill exekvera.
- table_names: Vi anger de tabellnamn från vilka vi vill ha posterna. Viktig information att notera här är att det bör finnas minst ett tabellnamn efter klausulen.
- : Det är valfritt Om vi anger where-villkoret kommer vi att hämta värdena efter att frågan har utförts endast om villkoret som nämndes är uppfyllt.
Notera: En viktig information att tänka på är att nyckelordet DISTINCT betraktar nollvärde även som ett unikt värde. Så om vi har nollvärden i en kolumn och vi använder nyckelordet DISTINCT för att hämta unika värden kommer det också att visa nollvärdet i resultatet.
Hur använder man DISTINCT i Oracle?
Nu har vi diskuterat vad som är ett DISTINCT-nyckelord i Oracle, syntaxen för DISTINCT-nyckelordet och de olika parametrarna som används i syntaxen.
Nu ska vi titta på olika exempel för att lära oss hur man effektivt använder DISTINCT i Oracle. Innan vi går in på exemplen kommer vi att använda tabellen EMPLOYEE som redan är skapad i databasen. Tabellen består av fem kolumner: NAME, VEHICLE_NAME, EMPLOYEE_ID, VEHICLE_ID och CITY. Nedan visas en skärmdump av de värden som finns i tabellen för anställda. Den fråga vi kommer att använda för detta är den grundläggande SELECT-anvisningen
SELECT * from employee;
När den exekveras i SQL developer får vi alla värden som visas nedan.
Output: Tabell: Anställda
Nu ska vi börja med exemplen.
1. Unika värden i en kolumn utan villkor
I det här exemplet ska vi använda DISTINCT för att hitta de unika värdena i en viss kolumn i en tabell utan att ha några villkor. Som exempel ska vi hitta de unika värdena i kolumnen fordon i tabellen anställda. Frågan visas nedan:
Code:
select DISTINCT(vehicle_name) from employee;
Output:
I ovanstående fråga som du kan se har vi angett kolumnnamnet samt tabellnamnet. När vi utför ovanstående fråga i SQL developer får vi nedanstående utdata:
2. Unika värden i en kolumn med villkor
I det här exemplet ska vi hitta unika värden i en kolumn precis som i det föregående exemplet, men med en liten ändring. I detta kommer vi att extrahera de unika värdena baserat på ett visst villkor. Låt oss till exempel hämta de unika värdena i kolumnen fordonsnamn från tabellen över anställda när staden inte är Kolkata. Frågan för samma sak finns nedan.
Code:
select DISTINCT(VEHICLE_NAME) from employee where CITY != 'KOLKATA';
Output:
Om du ser ovanstående fråga bör frågan återge de värden som uppfyller where-villkoret. När vi utför ovanstående fråga i SQL developer får vi nedanstående utdata.
Som du kan se i det föregående exemplet hade vi sex unika värden medan vi i det andra exemplet har fem unika värden eftersom vi hade lagt till ett specifikt villkor i det andra exemplet.
3. Unika värden från flera kolumner
I det här exemplet kommer vi att hitta unika värden på flera kolumner genom att använda DISTINCT. I tidigare exempel har vi använt enstaka kolumner, men i det här fallet kommer vi att använda flera kolumner. Antag till exempel att vi vill hitta unika värden för både fordonsnamn och stad och att resultaten ska vara i stigande ordning baserat på kolumnen stad. Låt oss titta på frågan för samma sak nedan.
Code:
select DISTINCT VEHICLE_NAME,CITY from employee ORDER BY CITY ASC;
Output:
I ovanstående fråga extraheras först data i stigande ordning baserat på kolumnen stad och sedan används båda värdena i kolumnerna fordonsnamn och stad för att få fram de unika paren. När vi utför ovanstående fråga i SQL developer får vi nedanstående utdata:
4. DISTINCT med NULL-värden
Tidigare i artikeln hade vi diskuterat att DISTINCT behandlar NULL-värden som unika värden så om vi har en kolumn med noll-värden i den. Den kommer att behandlas som ett unikt värde. Vi har till exempel nollvärden i kolumnen CITY, vilket du kan se i skärmdumpen i början av artikeln där alla värden i tabellen Employee visas. Vi kommer alltså att tillämpa DISTINCT på kolumnen CITY för att ta reda på hur nollvärdena påverkar resultatet. Frågan för samma sak visas nedan.
Code:
select DISTINCT CITY from employee;
Output:
Output:
När vi utför ovanstående fråga i SQL developer får vi nedanstående utdata.
Som vi ser visar utdatan null som ett distinkt värde. Så detta visar att DISTINCT behandlar null som ett unikt värde.
Slutsats – DISTINCT i Oracle
I den här artikeln diskuterade vi nyckelordet DISTINCT i Oracle, de syntaxer som används för att använda DISTINCT i frågor, de parametrar som används i dessa syntaxer och sedan genom olika exempel kom vi att veta hur vi kan använda DISTINCT i Oracle för att lösa våra nödvändiga uppgifter.
Rekommenderade artiklar
Detta är en guide till DISTINCT i Oracle. Här diskuterar vi nyckelordet DISTINCT i oracle, de syntaxer som används för att använda DISTINCT i koder och utdata. Du kan också gå igenom våra andra relaterade artiklar för att lära dig mer –
- Joins i Oracle
- Vad är Oracle Database
- Oracle String Functions
- Oracle Warehouse Builder
- Guide to Top Versions of Oracle
- ORDER BY in MySQL | How to Works?
- Guide till detta nyckelord i C#