SQL Consulta básica de UNION ALL


Ejemplo

CREATE TABLE HR_EMPLOYEES
(
    PersonID int,
    LastName VARCHAR(30),
    FirstName VARCHAR(30),
    Position VARCHAR(30)
);

CREATE TABLE FINANCE_EMPLOYEES
(
    PersonID INT,
    LastName VARCHAR(30),
    FirstName VARCHAR(30),
    Position VARCHAR(30)
);

Digamos que queremos extraer los nombres de todos los managers de nuestros departamentos.

Usando un UNION podemos obtener todos los empleados de los departamentos de recursos humanos y finanzas, que ocupan el position de manager

SELECT 
    FirstName, LastName   
FROM 
    HR_EMPLOYEES  
WHERE 
    Position = 'manager'  
UNION ALL  
SELECT 
    FirstName, LastName  
FROM 
    FINANCE_EMPLOYEES  
WHERE 
    Position = 'manager'  

La instrucción UNION elimina filas duplicadas de los resultados de la consulta. Dado que es posible tener personas con el mismo nombre y posición en ambos departamentos, estamos utilizando UNION ALL para no eliminar duplicados.

Si desea usar un alias para cada columna de salida, solo puede ponerlos en la primera instrucción de selección, de la siguiente manera:

SELECT 
    FirstName as 'First Name', LastName as 'Last Name'
FROM 
    HR_EMPLOYEES  
WHERE 
    Position = 'manager'  
UNION ALL  
SELECT 
    FirstName, LastName  
FROM 
    FINANCE_EMPLOYEES  
WHERE 
    Position = 'manager'