Índice
1. Introducción2. 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}
]
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:
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