SQL DISTINCT-leddet brukes til å fjerne dupliserte verdier fra spørringsresultater. Det sikrer at utdataene bare viser unike poster for de angitte kolonnene.
Eksempel: Først vil vi skape en demo SQL-database og tabell som vi vil bruke kommandoen Distinct Clause på.
Spørsmål:
SELECT DISTINCT Department
FROM Employees;
Produksjon:
Syntaks:
SELECT DISTINCT column1 column2
FROM table_name
- kolonne 1 kolonne 2: Navn på feltene i tabellen.
- Tabellnavn: Tabell hvor vi ønsker å hente postene.
Note: Hvis brukt på flere kolonner
DISTINCTreturnerer unike kombinasjoner av verdier på tvers av disse kolonnene.
Eksempler på DISTINCT i SQL
La oss lage en prøvetabell og fylle den med noen dupliserte oppføringer. Vi vil se noen eksempler på bruk av søkeordet DISTINCT med en eksempeltabell for elever.
Eksempel 1: Hent unike navn fra NAVN-feltet.
Spørringen returnerer bare unike navn som eliminerer dupliserte oppføringer fra tabellen.
Spørsmål:
SELECT DISTINCT NAME FROM students; Produksjon:
Eksempel 2: Henting av unike kombinasjoner av flere kolonner
Denne spørringen henter distinkte kombinasjoner av NAVN og ALDER - hvis to rader har samme navn og alder vil bare én av dem vises i resultatsettet.
Spørsmål:
SELECT DISTINCT NAME AGE FROM students;Produksjon:
Eksempel 3: Bruk av DISTINCT med ORDER BY-klausulen
Vi kan kombinere DISTINCT søkeordet med BESTILL PÅ klausul for å filtrere unike verdier mens du sorterer resultatsettet. Denne spørringen henter de unike alderen fra elevtabellen og sorterer dem i stigende rekkefølge.
Spørsmål:
SELECT DISTINCT AGE FROM students ORDER BY AGE; Produksjon:
Eksempel 4: Bruk av DISTINCT med aggregerte funksjoner (f.eks. COUNT())
Her skal vi sjekke TELLE() funksjon med en DISTINCT-klausul som vil gi det totale antallet studenter ved å bruke COUNT()-funksjonen.
Spørsmål:
SELECT COUNT(DISTINCT ROLL_NO) FROM Students ;Produksjon:
Eksempel 5: DISTINCT med NULL-verdier
I SQL behandler DISTINCT nøkkelordet NULL som en unik verdi. NULL behandles som en distinkt verdi, så den vises bare én gang hvis det er flere NULLer.
Spørsmål:
INSERT INTO students (ROLL_NO NAME ADDRESS PHONE AGE)
VALUES (13 'John Doe' '123 Unknown Street' '9876543216' NULL);
SELECT DISTINCT AGE FROM students;
Produksjon:
Lag quiz