SQLServerUnion与UnionAll的区别

SQLServerUnion与UnionAll的区别,第1张

SQLServerUnion与UnionAll的区别,第2张

与Union all的区别
如果我们需要整体显示两个select语句的结果,我们需要使用Union或Union All关键字。Union(或union)用于组合和显示多个结果。
union和union all的区别在于,Union会自动压缩多个结果集中的重复结果,而union all会显示所有结果,无论是否重复。
Union:合并两个结果集,排除重复行,按默认规则排序;
Union All:对两个结果集进行Union运算,包括重复行,不进行排序;
Intersect:将两个结果集相交,排除重复行,按默认规则排序;
Minus:对两个结果集进行差运算,排除重复行,按默认规则排序。
您可以在最后一个结果集中指定Order by子句来更改排序模式。
例如:
SELECT EMPLOYEE _ ID,JOB _ ID FROM EMPLOYEES
UNION
SELECT EMPLOYEE _ ID,JOB _ ID FROM JOB _ HISTORY
上面两个表的结果合并在一起。这两个例子将压缩两个select语句结果中的重复值,即结果的数据不是两个结果的数字之和。如果即使显示重复的结果也要使用union all,例如:
2。有一个表EMP
select * from EMP where deptno > = 20
union all
select * from EMP where deptno这里的结果中有许多重复值。
关于union和union all关键字需要注意的问题是:
union和union all都可以组合多个结果集,而不仅仅是两个,可以将多个结果集串在一起。
使用union和union all时,需要确保每个选择集的结果具有相同的列数,并且每列的类型相同。但是列名不必相同。oracle将使用第一个结果的列名作为结果集的列名。例如,下面是一个例子:
select EMPNO,ENAME from EMP
Union
select Deptno,DNAME from Dept
我们不需要在每个Select结果集中使用order by子句进行排序,我们可以在最后使用order by子句对整个结果进行排序。示例:
select empno,ename from EMP
union
select deptno,dname from dept
order by ename;

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » SQLServerUnion与UnionAll的区别

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情