SQL DISTINCT-satsen används för att ta bort dubbletter av värden från frågeresultat. Det säkerställer att utdata endast visar unika poster för den eller de angivna kolumnerna.
Exempel: Först ska vi skapa en demo SQL-databas och tabell där vi kommer att använda kommandot Distinct Clause.
Fråga:
SELECT DISTINCT Department
FROM Employees;
Produktion:
Syntax:
SELECT DISTINCT column1 column2
FROM table_name
- kolumn1 kolumn2: Namn på fälten i tabellen.
- Tabellnamn: Tabell varifrån vi vill hämta posterna.
Notera: Om den används på flera kolumner
DISTINCTreturnerar unika kombinationer av värden över dessa kolumner.
Exempel på DISTINCT i SQL
Låt oss skapa en exempeltabell och fylla i den med några dubbletter. Vi kommer att se några exempel på hur du använder nyckelordet DISTINCT med en exempeltabell för elever.
Exempel 1: Hämta unika namn från fältet NAMN.
Frågan returnerar endast unika namn och eliminerar dubblettposterna från tabellen.
Fråga:
SELECT DISTINCT NAME FROM students; Produktion:
java delad sträng med avgränsare
Exempel 2: Hämta unika kombinationer av flera kolumner
Den här frågan hämtar distinkta kombinationer av NAMN och ÅLDER — om två rader har samma namn och ålder kommer endast en av dem att visas i resultatuppsättningen.
Fråga:
SELECT DISTINCT NAME AGE FROM students;Produktion:
Exempel 3: Använda DISTINCT med ORDER BY-klausulen
Vi kan kombinera nyckelordet DISTINCT med BESTÄLL AV sats för att filtrera unika värden samtidigt som resultatuppsättningen sorteras. Denna fråga hämtar de unika åldrarna från elevtabellen och sorterar dem i stigande ordning.
Fråga:
SELECT DISTINCT AGE FROM students ORDER BY AGE; Produktion:
Exempel 4: Använda DISTINCT med aggregerade funktioner (t.ex. COUNT())
Här kommer vi att kontrollera RÄKNA() funktion med en DISTINCT-sats som ger det totala antalet elever genom att använda COUNT()-funktionen.
Fråga:
SELECT COUNT(DISTINCT ROLL_NO) FROM Students ;Produktion:
Exempel 5: DISTINCT med NULL-värden
I SQL behandlar nyckelordet DISTINCT NULL som ett unikt värde. NULL behandlas som ett distinkt värde så det visas bara en gång om det finns flera NULL.
Fråga:
INSERT INTO students (ROLL_NO NAME ADDRESS PHONE AGE)
VALUES (13 'John Doe' '123 Unknown Street' '9876543216' NULL);
SELECT DISTINCT AGE FROM students;
Produktion:
Skapa frågesport