Ta bort dubbletter

Slutförd

Även om raderna i en tabell alltid ska vara unika, kan det hända att resultatraderna inte är unika även om de ursprungliga raderna är det när du bara väljer en delmängd av kolumnerna. Du kan till exempel ha en tabell med leverantörer med krav på att staden och delstaten (eller provinsen) ska vara unika så att det aldrig kommer att finnas fler än en leverantör i någon stad. Men om du bara vill se de städer och länder/regioner där leverantörerna finns kanske de returnerade resultaten inte är unika. Anta att du skriver följande fråga:

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

Den här frågan kan returnera resultat som liknar följande:

Stad

LandRegion

Aurora

Kanada

Barrie

Kanada

Brampton

Kanada

Brossard

Kanada

Brossard

Kanada

Burnaby

Kanada

Burnaby

Kanada

Burnaby

Kanada

Calgary

Kanada

Calgary

Kanada

...

...

Som standard innehåller SELECT-satsen ett implicit ALL-nyckelord som resulterar i det här beteendet:

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

T-SQL har också stöd för ett alternativ med nyckelordet DISTINCT, som tar bort eventuella duplicerade resultatrader:

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

När du använder DISTINCT returnerar exemplet bara en av varje unik kombination av värden i SELECT-listan:

Stad

LandRegion

Aurora

Kanada

Barrie

Kanada

Brampton

Kanada

Brossard

Kanada

Burnaby

Kanada

Calgary

Kanada

...

...