Tutorial de SQL SERVER
10. Consultas de Unión Externas
Se utiliza la operación UNION para crear una consulta de unión,
combinando los resultados de dos o más consultas o tablas independientes.
Su sintaxis es:
[TABLE] consulta1 UNION [ALL] [TABLE]
consulta2 [UNION [ALL] [TABLE] consultan [ ... ]]
En donde:
consulta1, consulta2, consultan
Son instrucciones SELECT, el nombre de una consulta almacenada o el
nombre de una tabla almacenada precedido por la palabra clave TABLE.
Puede combinar los resultados de dos o más consultas, tablas
e instrucciones SELECT, en cualquier orden, en una única operación
UNION. El ejemplo siguiente combina una tabla existente llamada Nuevas
Cuentas y una instrucción SELECT:
TABLE [Nuevas Cuentas]
UNION ALL SELECT * FROM
Clientes
WHERE [Cantidad pedidos]
> 1000;
Si no se indica lo contrario, no se devuelven registros duplicados cuando
se utiliza la operación UNION, no obstante puede incluir el predicado
ALL para asegurar que se devuelven todos los registros. Esto hace que la
consulta se ejecute más rápidamente. Todas las consultas
en una operación UNION deben pedir el mismo número de campos,
no obstante los campos no tienen porqué tener el mismo tamaño
o el mismo tipo de datos.
Se puede utilizar una cláusula GROUP BY y/o HAVING en cada argumento
consulta para agrupar los datos devueltos. Puede utilizar una cláusula
ORDER BY al final del último argumento consulta para visualizar
los datos devueltos en un orden específico.
SELECT [Nombre de compañía],
Ciudad FROM Proveedores WHERE
País = 'Brasil' UNION
SELECT [Nombre de compañía], Ciudad FROM
Clientes
WHERE País =
"Brasil"
Recupera los nombres y las ciudades de todos proveedores y clientes
de Brasil
SELECT [Nombre de compañía],
Ciudad
FROM Proveedores
WHERE
País = 'Brasil'
UNION SELECT [Nombre
de compañía], Ciudad
FROM Clientes
WHERE País =
'Brasil'
ORDER BY Ciudad
Recupera los nombres y las ciudades de todos proveedores y clientes
radicados en Brasil, ordenados por el nombre de la ciudad
SELECT [Nombre de compañía],
Ciudad
FROM Proveedores
WHERE
País = 'Brasil'
UNION SELECT [Nombre
de compañía], Ciudad
FROM Clientes
WHERE País =
'Brasil'
UNION SELECT
[Apellidos], Ciudad
FROM Empleados
WHERE
Región =
'América del Sur'
Recupera los nombres y las ciudades de todos los proveedores y clientes
de brasil y los apellidos y las ciudades de todos los empleados de América
del Sur
TABLE [Lista de clientes]
UNION TABLE [Lista de proveedores]
Recupera los nombres y códigos de todos los proveedores y
clientes