Entfernen von Duplikaten

Abgeschlossen

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

...

...