UNION ALL 的应用
UNION ALL将多个来源的行组合起来,放到一个结果集中。所有SELECT 列表中的项目数和项目的数据类型必须匹配,这根其他所有集合的操作要求相同。
UNION ALL 与 UNION区别
UNION ALL包含重复的,UNION不包含,去重复。使用UNION 相当于对于UNION ALL子句的查询结果使用DISTINCT。
select deptno
from emp
union
select deptno
from dept
结果:
DEPTNO
_ _ _ _ _ _
1
2
3
4
等价于
select distinct tmp.deptno
from (
select deptno
from emp
union all
select deptno
from dept
) tmp
结果:
DEPTNO
_ _ _ _ _ _
1
2
3
4
关于DISTINCT
从性能上去考虑,通常,查询中不要使用DISTINCT,除非确有必要这样做,对于UNION而言也是如此。除非确有必要这样做,一般使用UNION ALL,而不使用UNION。