Ismétlődések eltávolítása

Befejeződött

Bár a táblázat sorainak mindig egyedinek kell lenniük, ha csak az oszlopok egy részhalmazát választja ki, előfordulhat, hogy az eredménysorok akkor sem lesznek egyediek, ha az eredeti sorok. Előfordulhat például, hogy olyan szállítók táblázata van, amelyekben a város és az állam (vagy tartomány) egyedi, így egyetlen városban sem lesz több szállító. Ha azonban csak azokat a városokat és országokat/régiókat szeretné látni, ahol a szállítók találhatók, előfordulhat, hogy a visszaadott eredmények nem egyediek. Tegyük fel, hogy a következő lekérdezést írja:

SELECT City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;

Ez a lekérdezés az alábbihoz hasonló eredményeket adhat vissza:

Város

Ország/Régió

Sarki fény

Kanada

Barrie

Kanada

Brampton

Kanada

Brossard

Kanada

Brossard

Kanada

Burnaby

Kanada

Burnaby

Kanada

Burnaby

Kanada

Calgary

Kanada

Calgary

Kanada

...

...

A SELECT záradék alapértelmezés szerint tartalmaz egy implicit ALL kulcsszót, amely ezt a viselkedést eredményezi:

SELECT ALL City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;

A T-SQL a DISTINCT kulcsszó alternatívát is támogatja, amely eltávolítja az összes ismétlődő eredménysort:

SELECT DISTINCT City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;

A DISTINCT használata esetén a példa csak az értékek egyedi kombinációjának egy-egyét adja vissza a SELECT listában:

Város

Ország/Régió

Sarki fény

Kanada

Barrie

Kanada

Brampton

Kanada

Brossard

Kanada

Burnaby

Kanada

Calgary

Kanada

...

...