jueves, 30 de junio de 2016

Receta T-SQL No. 4-11: ¿Cómo Eliminar Duplicados en una Unión?

Índice

1. Introducción
2. Palabras Clave
3. Problema
4. Solución
5. Discusión de la Solución
5.1 Operador UNION
6. Práctica: Listar los Apellidos de Empleados y Vendedores sin Duplicados
7. Conclusiones
8. Literatura & Enlaces

1. Introducción

Se ha comprendido que a través del operador UNION ALL se obtienen los registros de dos o más tablas, aun duplicados. Existe en T-SQL otro operador para realizar uniones de registros pero sin duplicados: UNION. En esta receta se presenta un caso de ejemplo donde resulta útil este operador: generar un reporte de los apellidos de todos los empleados y vendedores de una compañía.

2. Palabras Clave

  • Operador
  • UNION
  • UNION ALL

3. Problema

Generar reporte de todos los apellidos de empleados y vendedores de una compañía.

4. Solución

En T-SQL el operador UNION combina los resultados de dos o más consultas y elimina duplicados.

5. Discusión de la Solución

5.1 Operador UNION

El operador UNION combina los resultados de dos o más consultas en un único conjunto de resultados ("UNION (Transact-SQL", 2016). A diferencia de UNION ALL, UNION remueve los duplicados de la unión/combinación.


Para efectuar la combinación/unión de resultados se deben seguir estas reglas: 
  • El orden y número de las columnas de las consultas debe ser el mismo.
  • Los tipos de datos de las columnas debe ser compatible.
Sintaxis: 

{ consulta_1 }
UNION
{consulta_2
[ UNION
{consulta_n}
]

6. Práctica: Listar los Apellidos de Empleados y Vendedores sin Duplicados

Este ejemplo en T-SQL ilustra cómo obtener un listado o reporte de los apellidos de empleados y vendedores sin duplicados a través del uso del operador UNION.

En las líneas 1-4 se recuperan todos los apellidos de las personas que son empleados. Este resultado se combina con la sentencia SELECT que recupera los apellidos de las personas que son vendedores (líneas 6-9).


Este es el resultado que se obtiene de ejecutar la sentencia en Microsoft SQL Management Studio
Apellidos de personas que son vendedores o empleados
Figura 1. Apellidos de personas que son vendedores o empleados.

7. Conclusiones

El operador UNION permite obtener registros -no repetidos- de la unión de dos o más sentencias SELECT. Quedó claro que se debe seguir el orden y número de campos, además de la coincidencia con tipos de datos compatibles.


La próxima receta T-SQL se concentra en demostrar cómo sustraer un registro de un conjunto de otro distinto.

8. Literatura & Enlaces

Brimhall, J., Dye, D., Gennick, J., Roberts, A., Sheffield, W. (2012). SQL Server 2012 T-SQL Recipes - A Problem-Solution Approach. United States: Apress.
UNION (Transact-SQL) (2016, junio 30). Recuperado desde: https://msdn.microsoft.com/en-us/library/ms180026.aspx


V

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.