Klauzula SQL DISTINCT sa používa na odstránenie duplicitných hodnôt z výsledkov dotazu. Zabezpečuje, že výstup zobrazuje iba jedinečné záznamy pre zadaný stĺpec (stĺpce).
skryté aplikácie
Príklad: Najprv budeme vytvoriť demo SQL databázu a tabuľku, na ktorú použijeme príkaz Distinct Clause.
dotaz:
SELECT DISTINCT Department
FROM Employees;
výstup:
Syntax:
SELECT DISTINCT column1 column2
FROM table_name
- stĺpec1 stĺpec2: Názvy polí tabuľky.
- Table_name: Tabuľka, odkiaľ chceme načítať záznamy.
Poznámka: Ak sa použije na viacerých stĺpcoch
DISTINCTvráti jedinečné kombinácie hodnôt v týchto stĺpcoch.
Príklady DISTINCT v SQL
Vytvorme vzorovú tabuľku a vyplňte ju niekoľkými duplicitnými položkami. Ukážeme si niekoľko príkladov použitia kľúčového slova DISTINCT so vzorovou tabuľkou študentov.
Príklad 1: Získajte jedinečné názvy z poľa NAME.
Dotaz vráti iba jedinečné názvy, čím sa odstránia duplicitné položky z tabuľky.
dotaz:
SELECT DISTINCT NAME FROM students; výstup:
Príklad 2: Získavanie jedinečných kombinácií viacerých stĺpcov
Tento dotaz načítava odlišné kombinácie MENO a VEK – ak majú dva riadky rovnaký názov a vek, v množine výsledkov sa zobrazí iba jeden z nich.
dotaz:
SELECT DISTINCT NAME AGE FROM students;výstup:
porovnanie java
Príklad 3: Použitie DISTINCT s klauzulou ORDER BY
Kľúčové slovo DISTINCT môžeme skombinovať s kľúčovým slovom OBJEDNAŤ PODĽA klauzulu na filtrovanie jedinečných hodnôt pri triedení sady výsledkov. Tento dotaz načíta jedinečný vek z tabuľky študentov a zoradí ich vo vzostupnom poradí.
dotaz:
SELECT DISTINCT AGE FROM students ORDER BY AGE; výstup:
Príklad 4: Použitie DISTINCT s agregačnými funkciami (napr. COUNT())
Tu skontrolujeme COUNT() funkcia s klauzulou DISTINCT, ktorá dá celkový počet študentov pomocou funkcie COUNT().
dotaz:
SELECT COUNT(DISTINCT ROLL_NO) FROM Students ;výstup:
Príklad 5: DISTINCT s hodnotami NULL
V SQL kľúčové slovo DISTINCT považuje NULL za jedinečnú hodnotu. Hodnota NULL sa považuje za odlišnú hodnotu, takže ak existuje viacero hodnôt NULL, zobrazí sa iba raz.
dotaz:
INSERT INTO students (ROLL_NO NAME ADDRESS PHONE AGE)
VALUES (13 'John Doe' '123 Unknown Street' '9876543216' NULL);
SELECT DISTINCT AGE FROM students;
výstup:
Vytvoriť kvíz