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