Dubbele items verwijderen

Voltooid

Hoewel de rijen in een tabel altijd uniek moeten zijn, zijn de resultaatrijen mogelijk niet uniek wanneer u alleen een subset van de kolommen selecteert, zelfs niet als de oorspronkelijke rijen dat zijn. U hebt bijvoorbeeld een tabel met leveranciers met een vereiste dat de stad en staat (of provincie) uniek zijn, zodat er nooit meer dan één leverancier in elke stad zal zijn. Als u echter alleen de steden en landen/regio's wilt zien waar leveranciers zich bevinden, zijn de geretourneerde resultaten mogelijk niet uniek. Stel dat u de volgende query schrijft:

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

Deze query kan resultaten retourneren die vergelijkbaar zijn met de volgende:

Plaats

CountryRegion

Aurora

Canada

Barrie

Canada

Brampton

Canada

Brossard

Canada

Brossard

Canada

Burnaby

Canada

Burnaby

Canada

Burnaby

Canada

Calgary

Canada

Calgary

Canada

...

...

Standaard bevat de SELECT-component een impliciet ALL-trefwoord dat resulteert in dit gedrag:

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

T-SQL biedt ook ondersteuning voor een alternatief trefwoord DISTINCT, waarmee dubbele resultaatrijen worden verwijderd:

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

Wanneer u DISTINCT gebruikt, retourneert het voorbeeld slechts één van elke unieke combinatie van waarden in de SELECT-lijst:

Plaats

CountryRegion

Aurora

Canada

Barrie

Canada

Brampton

Canada

Brossard

Canada

Burnaby

Canada

Calgary

Canada

...

...