[英]Union ALL with different number of columns
我有一個包含這些列的 Employee 表:
和 EmployeeHistory 包含具有不同列的歷史記錄,但有一些共同點:
我怎樣才能聯合他們?
SELECT
EmployeeId ,
Fullname ,
'Undefined' AS Email,
Phone ,
'Undefined' AS Geolocation
Department ,
Team ,
[Function] ,
Manager
FROM Employee
UNION ALL
EmployeeId ,
Fullname ,
Email ,
'0000000000' AS Phone,
Geolocation,
Department ,
Team ,
[Function] ,
Manager
FROM EmployeeHistory
您只需要添加null
(或合適的值)即可替換不存在的列
select EmployeeId, Fullname, Email, Geolocation, null Phone, Department, Team, function, Manager
from EmployeeHistory
union all
select EmployeeId, Fullname, null, null, Phone, Department, Team, function, Manager
from Employee
要使用union
或union all
列數必須在所有 select 列表中匹配。 為此,您可以使用 null 作為任何 select 列表中缺失列的值。
盡管您已經通過union all
得到了答案,但您需要使用 union 而不是存在重復行的任何可能性,並且您只想 select 不同的行。
Select EmployeeId, Fullname, null as Email, Phone, null as Geolocation, Department, Team, Function, Manager from Employee
union
Select EmployeeId, Fullname, Email, null as Phone, Geolocation, Department, Team, Function, Manager from EmployeeHistory
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.