基本 UNION ALL 查詢

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

假設我們想從我們的部門中提取所有 managers 的名稱。

使用 UNION,我們可以從人力資源部門和財務部門獲得所有員工,這些部門持有 position

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

UNION 語句從查詢結果中刪除重複的行。由於人們可以在兩個部門中擁有相同的姓名和職位,我們使用 UNION ALL,以便不刪除重複項。

如果要為每個輸出列使用別名,可以將它們放在第一個 select 語句中,如下所示:

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'