SQL Basic UNION ALL query

Esempio

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)
);

Diciamo che vogliamo estrarre i nomi di tutti i managers dai nostri reparti.

Utilizzando UNION , possiamo ottenere tutti i dipendenti delle risorse umane e finanziarie, che detengono la position di manager

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

L'istruzione UNION rimuove le righe duplicate dai risultati della query. Dal momento che è possibile avere persone con lo stesso nome e posizione in entrambi i reparti, stiamo utilizzando UNION ALL , per non rimuovere i duplicati.

Se si desidera utilizzare un alias per ciascuna colonna di output, è sufficiente inserirli nella prima istruzione select, come segue:

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'