Usuwanie duplikatów

Ukończone

Chociaż wiersze w tabeli powinny być zawsze unikatowe, po wybraniu tylko podzestawu kolumn wiersze wynikowe mogą nie być unikatowe, nawet jeśli oryginalne wiersze są. Na przykład możesz mieć tabelę dostawców z wymaganiem, aby miasto i województwo (lub prowincja) były unikatowe, aby nigdy nie było więcej niż jednego dostawcy w żadnym mieście. Jeśli jednak chcesz zobaczyć miasta i kraje/regiony, w których znajdują się dostawcy, zwrócone wyniki mogą nie być unikatowe. Załóżmy, że piszesz następujące zapytanie:

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

To zapytanie może zwrócić wyniki podobne do następujących:

City

CountryRegion

Aurora

Kanada

Barrie

Kanada

Brampton

Kanada

Brossard

Kanada

Brossard

Kanada

Burnaby

Kanada

Burnaby

Kanada

Burnaby

Kanada

Calgary

Kanada

Calgary

Kanada

...

...

Domyślnie klauzula SELECT zawiera niejawne słowo kluczowe ALL, które powoduje to zachowanie:

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

Język T-SQL obsługuje również alternatywne słowo kluczowe DISTINCT, które usuwa wszystkie zduplikowane wiersze wyników:

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

W przypadku używania funkcji DISTINCT przykład zwraca tylko jedną z każdej unikatowej kombinacji wartości na liście SELECT:

City

CountryRegion

Aurora

Kanada

Barrie

Kanada

Brampton

Kanada

Brossard

Kanada

Burnaby

Kanada

Calgary

Kanada

...

...