Eliminando duplicatas com DISTINCT

A palavra-chave DISTINCT elimina linhas duplicadas dos resultados de uma instrução SELECT. Se não for especificado DISTINCT, todas as linhas serão retornadas, inclusive as duplicadas. Por exemplo, se você selecionar todo os IDs de produtos no ProductInventory sem DISTINCT, serão retornadas 1069 linhas.

Com DISTINCT, você pode eliminar duplicatas e ver os IDs de produtos exclusivos:

USE AdventureWorks2008R2;
GO
SELECT DISTINCT ProductID
FROM Production.ProductInventory ;

Essa consulta retorna 432 linhas.

Observação importanteImportante

A saída para instruções que envolvem DISTINCT depende do agrupamento da coluna ou expressão nas quais foi aplicado DISTINCT.

Os valores nulos são considerados duplicatas de si mesmos para a palavra-chave DISTINCT. Quando DISTINCT é incluído em uma instrução SELECT, só é retornado um NULL nos resultados, seja qual for o número de valores nulos encontrados.

ObservaçãoObservação

Para obter compatibilidade com o padrão ISO e outras implementações do SQL Server, a palavra-chave ALL pode solicitar explicitamente todas as linhas. Porém, não há necessidade de especificar ALL porque é o padrão.

Consulte também

Referência