Remover duplicados

Concluído

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

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

Esta consulta pode retornar resultados semelhantes aos seguintes:

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 ALL implícita que resulta nesse comportamento:

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

O T-SQL também suporta uma alternativa a palavra-chave DISTINCT que remove todas as linhas de resultados 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á

...

...