Ta bort dubbletter
Ä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
...
...