Remover duplicatas

Concluído

Embora as linhas em uma tabela devam sempre ser exclusivas, quando você seleciona apenas um subconjunto das colunas, as linhas de resultado podem não ser exclusivas, mesmo se as linhas originais forem. Por exemplo, você pode ter uma tabela de fornecedores com um requisito de que a cidade e o estado (ou província) sejam exclusivos, de forma que nunca haja mais de um fornecedor em uma cidade. No entanto, se você quiser apenas ver as cidades e países/regiões em que os fornecedores estão localizados, os resultados retornados podem não ser exclusivos. Suponha que você escreva a seguinte consulta:

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

Essa consulta pode gerar resultados semelhantes a:

City

CountryRegion

Aurora

Canadá

Barrie

Canadá

Brampton

Canadá

Brossard

Canadá

Brossard

Canadá

Burnaby

Canadá

Burnaby

Canadá

Burnaby

Canadá

Calgary

Canadá

Calgary

Canadá

...

...

Por padrão, a cláusula SELECT inclui uma palavra-chave implícita ALL que resulta nesse comportamento:

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

O T-SQL também dá suporte a uma alternativa à palavra-chave DISTINCT, que remove quaisquer linhas de resultado duplicadas:

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

Ao usar DISTINCT, o exemplo retorna apenas uma de cada combinação exclusiva de valores na lista SELECT:

City

CountryRegion

Aurora

Canadá

Barrie

Canadá

Brampton

Canadá

Brossard

Canadá

Burnaby

Canadá

Calgary

Canadá

...

...