基本 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'