SQL Requête de base UNION ALL


Exemple

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

Disons que nous voulons extraire les noms de tous les managers de nos départements.

En utilisant un UNION nous pouvons obtenir tous les employés des départements des ressources humaines et des finances, qui occupent le position de manager

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

L'instruction UNION supprime les lignes dupliquées des résultats de la requête. Comme il est possible d'avoir des personnes ayant le même nom et la même position dans les deux départements, nous utilisons UNION ALL afin de ne pas supprimer les doublons.

Si vous souhaitez utiliser un alias pour chaque colonne de sortie, vous pouvez simplement les placer dans la première instruction select, comme suit:

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'