Eliminación de duplicados

Completado

Aunque las filas de una tabla siempre deben ser únicas, al seleccionar solo un subconjunto de las columnas, es posible que las filas de resultados no sean únicas aunque las filas originales sí lo sean. Por ejemplo, puede tener una tabla de proveedores con un requisito de que la ciudad y el estado (o provincia) sean únicos para que nunca haya más de un proveedor en una ciudad. Sin embargo, si solo quiere ver las ciudades y los países o regiones donde se encuentran los proveedores, es posible que los resultados devueltos no sean únicos. Supongamos que escribe la consulta siguiente:

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

Esta consulta puede devolver resultados similares a los siguientes:

City

CountryRegion

Aurora

Canadá

Barrie

Canadá

Brampton

Canadá

Brossard

Canadá

Brossard

Canadá

Burnaby

Canadá

Burnaby

Canadá

Burnaby

Canadá

Calgary

Canadá

Calgary

Canadá

...

...

De manera predeterminada, la cláusula SELECT incluye una palabra clave ALL implícita que da como resultado este comportamiento:

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

T-SQL también admite una alternativa a la palabra clave DISTINCT, que quita las filas de resultados duplicadas:

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

Cuando se usa DISTINCT, el ejemplo devuelve solo una de cada combinación única de valores de la lista SELECT:

City

CountryRegion

Aurora

Canadá

Barrie

Canadá

Brampton

Canadá

Brossard

Canadá

Burnaby

Canadá

Calgary

Canadá

...

...