UNION ALL

我们想列出公司中所有员工(包括临时工)的姓名和年龄信息,那么我们可以执行下面的SQL语句:


SELECT FName,FAge FROM T_Employee

UNION

SELECT FName,FAge FROM T_TempEmployee

的是不一致的,在正式员工中有姓名为Tom、年龄为26以及姓名为Tina、年龄为26的两名员工,而临时工中也有姓名为Tom、年龄为26以及姓名为Tina、年龄为26的两名员工,也就是说正式员工的临时工中存在重名和年龄重复的现象,但是在查询结果中却将重复的信息只保留了一条,也就是只有一个姓名为Tom、年龄为26的员工和一个姓名为Tina、年龄为26的员工。

这时因为默认情况下,UNION运算符合并了两个查询结果集,其中完全重复的数据行被合并为了一条。如果需要在联合结果集中返回所有的记录而不管它们是否唯一,则需要在UNION运算符后使用ALL操作符,比如下面的SQL语句:


SELECT FName,FAge FROM T_Employee

UNION ALL

SELECT FName,FAge FROM T_TempEmployee

执行完毕我们就能在输出结果中看到下面的执行结果:


FName FAge

Tom 26

Jerry 29

Jane 24

Tina 26

Smith 29

<NULL> 28

John 24

Kerry 29

Stone 23

Sarani 33

Tom 26

Yalaha 38

Tina 26

Konkaya 29

Fotifa 46
原文地址:https://www.cnblogs.com/yuyu666/p/9823640.html