Entfernen von Duplikaten
Obwohl die Zeilen in einer Tabelle immer eindeutig sein sollten, kann es vorkommen, dass die Ergebniszeilen nicht eindeutig sind, wenn Sie nur eine Teilmenge der Spalten auswählen, selbst wenn die ursprünglichen Zeilen eindeutig sind. Sie können z. B. eine Tabelle mit Lieferanten haben, bei der die Stadt und das Bundesland (oder die Provinz) eindeutig sein müssen, damit es in jeder Stadt nur einen Lieferanten gibt. Wenn Sie jedoch nur die Städte und Länder/Regionen anzeigen möchten, in denen sich Lieferanten befinden, sind die zurückgegebenen Ergebnisse möglicherweise nicht eindeutig. Angenommen, Sie schreiben die folgende Abfrage:
SELECT City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;
Die Ergebnisse dieser Abfrage sehen in etwa wie folgt aus:
City
CountryRegion
Aurora
Kanada
Barrie
Kanada
Brampton
Kanada
Brossard
Kanada
Brossard
Kanada
Burnaby
Kanada
Burnaby
Kanada
Burnaby
Kanada
Calgary
Kanada
Calgary
Kanada
...
...
Standardmäßig enthält die SELECT-Klausel ein implizites Schlüsselwort ALL, das zu diesem Verhalten führt:
SELECT ALL City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;
T-SQL unterstützt auch eine Alternative: das Schlüsselwort DISTINCT, das alle doppelt vorhandenen Ergebniszeilen entfernt:
SELECT DISTINCT City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;
Bei Verwendung von DISTINCT gibt das Beispiel nur eine der einzelnen eindeutigen Kombinationen von Werten in der SELECT-Liste zurück:
City
CountryRegion
Aurora
Kanada
Barrie
Kanada
Brampton
Kanada
Brossard
Kanada
Burnaby
Kanada
Calgary
Kanada
...
...