Indledning til DISTINCT i Oracle
DISTINCT-nøgleordet i Oracle-databasen adskiller eller filtrerer de dobbelte rækker i det resultatsæt, der returneres af SELECT-meddelelsen (resultat sæt indeholder kolonnen/kolonnerne i SELECT-erklæringen), således at den kolonne eller de kolonner, der returneres af forespørgslen, indeholder alle de værdier eller poster, som ikke er dubletter og er unikke i forhold til hinanden, da DISTINCT-nøgleordet sammenligner hver værdi af den kolonne/kolonnerne i det resultat sæt, der returneres af forespørgslen, med hinanden.
Syntaks
Start dit gratis kursus i datalogi
Hadoop, datalogi, statistik & andre
Vi vil nu se nærmere på syntaksen for det distinkte nøgleord i Oracle. Vi har to muligheder i dette tilfælde for syntaks. Den første syntaks er at bruge distinct nøgleordet uden betingelser og den anden syntaks er at bruge distinct nøgleordet med betingelser.
Syntaks uden betingelse: Select DISTINCT(expressions) from table_names;
Syntaks med betingelsen:Select DISTINCT(expressions) from table_names ;
Parametre
Vi vil nu se på de forskellige parametre, der anvendes i de to ovenstående syntakser.
- udtryk: Vi angiver de kolonnenavne eller udtryk, som vi ønsker at udføre.
- table_names: Vi angiver de tabelnavne, hvorfra vi ønsker posterne. Vigtig information at bemærke her er, at der skal være mindst ét bordnavn efter klausulen.
- : Det er valgfrit Hvis vi giver where-begrebet, vil vi kun hente værdierne efter forespørgselsudførelse, hvis den nævnte betingelse er opfyldt.
Note: En vigtig information at huske på er, at DISTINCT-nøgleordet også betragter nul-værdi som en unik værdi. Så hvis vi har nulværdier i en kolonne, og vi bruger DISTINCT-nøgleordet til at hente unikke værdier, så vil det også vise NULL-værdien i output.
Hvordan bruger du DISTINCT i Oracle?
Nu har vi diskuteret, hvad der er et DISTINCT-nøgleord i Oracle, syntaksen for DISTINCT-nøgleordet og de forskellige parametre, der bruges i syntaksen.
Nu vil vi se på forskellige eksempler for at lære, hvordan man effektivt bruger DISTINCT i Oracle. Før vi går ind i eksemplerne, bruger vi tabellen EMPLOYEE, der allerede er oprettet i databasen. Tabellen består af fem kolonner, som er NAME, VEHICLE_NAME, EMPLOYEE_ID, VEHICLE_ID og CITY. Nedenfor er et skærmbillede af de værdier, der findes i medarbejdertabellen. Den forespørgsel, som vi vil bruge til dette, er den grundlæggende SELECT-anvisning
SELECT * from employee;
Ved udførelse i SQL developer får vi alle værdierne som vist nedenfor.
Output: Medarbejdertabel
Nu skal vi begynde med eksemplerne.
1. Unikke værdier i en kolonne uden betingelse
I dette eksempel skal vi bruge DISTINCT til at finde de unikke værdier i en bestemt kolonne i en tabel uden at have nogen betingelser. Som et eksempel skal vi finde de unikke værdier i kolonnen køretøj i tabellen medarbejdernes tabel. Forespørgslen er vist nedenfor:
Kode:
select DISTINCT(vehicle_name) from employee;
Output:
I ovenstående forespørgsel som du kan se, har vi angivet kolonnens navn såvel som tabellens navn. Ved at udføre ovenstående forespørgsel i SQL developer får vi nedenstående output:
2. Unikke værdier i en kolonne med betingelse
I dette eksempel skal vi finde unikke værdier i en kolonne ligesom i det foregående eksempel, men med en lille ændring. I dette vil vi udtrække de unikke værdier baseret på en betingelse. Lad os som eksempel få de unikke værdier i kolonnen køretøjsnavn fra medarbejdertabellen, når byen ikke er Kolkata. Forespørgslen til det samme er angivet nedenfor.
Code:
select DISTINCT(VEHICLE_NAME) from employee where CITY != 'KOLKATA';
Output:
Hvis du ser ovenstående forespørgsel bør forespørgslen returnere de værdier, der opfylder where-betingelsen. Ved at udføre ovenstående forespørgsel i SQL developer får vi nedenstående output.
Som du kan se i det foregående eksempel havde vi seks unikke værdier, mens vi i det andet eksempel har fem unikke værdier, da vi havde tilføjet en specifik betingelse i det andet eksempel.
3. Unikke værdier fra flere kolonner
I dette eksempel skal vi finde unikke værdier på flere kolonner ved at bruge DISTINCT. Så tidligere eksempler havde vi brugt enkelte kolonner, men i dette tilfælde vil vi bruge flere kolonner. Lad os f.eks. antage, at vi ønsker at finde de unikke værdier for både køretøjets navn og by, og at resultaterne skal være i stigende orden baseret på kolonnen by. Lad os se på forespørgslen til det samme nedenfor.
Code:
select DISTINCT VEHICLE_NAME,CITY from employee ORDER BY CITY ASC;
Output:
I ovenstående forespørgsel udtrækkes først dataene i stigende orden baseret på kolonnen by, og derefter bruges begge værdier i kolonnerne køretøjsnavn og by til at få de unikke par. Ved at udføre ovenstående forespørgsel i SQL developer får vi nedenstående output.
4. DISTINCT med NULL-værdier
Tidligere i artiklen havde vi diskuteret, at DISTINCT behandler NULL-værdier som unikke værdier, så hvis vi har en kolonne med nul-værdier i den. Det vil blive behandlet som en unik værdi. Vi har f.eks. nulværdier i kolonnen CITY, som du kan se i skærmbilledet i begyndelsen af artiklen, hvor alle værdier i medarbejdertabellen er vist. Så vi vil anvende DISTINCT på kolonnen CITY for at finde ud af, hvilken indvirkning nulværdierne har på resultatet. Forespørgslen til det samme er vist nedenfor.
Kode:
select DISTINCT CITY from employee;
Output:
Ved udførelse af ovenstående forespørgsel i SQL developer får vi nedenstående output.
Som vi kan se, viser outputtet null som en distinkt værdi. Så dette viser, at DISTINCT behandler null som en unik værdi.
Konklusion – DISTINCT i Oracle
I denne artikel diskuterede vi DISTINCT-keywordet i Oracle, de syntakser, der bruges til at bruge DISTINCT i forespørgsler, de parametre, der bruges i disse syntakser, og derefter gennem forskellige eksempler kom vi til at vide, hvordan vi kan bruge DISTINCT i Oracle til at løse vores nødvendige opgaver.
Anbefalede artikler
Dette er en vejledning til DISTINCT i Oracle. Her diskuterer vi DISTINCT nøgleordet i oracle, de syntakser, der bruges til at bruge DISTINCT i koder og output. Du kan også gennemgå vores andre relaterede artikler for at lære mere –
- Joins i Oracle
- Hvad er Oracle Database
- Oracle String Functions
- Oracle Warehouse Builder
- Guide til de bedste versioner af Oracle
- ORDER BY i MySQL | Hvordan virker det?
- Guide til dette nøgleord i C#