SQL> select * from stud;
SID KCBM CJ RQ
---------- ---------- ---------- ---------- -
1 语文 60 10-1月 -05
2 数学 60 02-10月-05
3 英语 90 25-1月 -05
1 数学 99 10-1月 -05
3 数学 60 25-1月 -05
2 语文 20 02-10月-05
4 语文 35 25-1月 -05
4 数学 55 25-1月 -05
4 英语 50 25-1月 -05
已选择9行。
SQL> select cj from stud
2 union
3 select avg(cj) from stud;
CJ
----------
20
35
50
55
58.7777778
60
90
99
已选择8行。
SQL> select cj from stud
2 union all
3 select avg(cj) from stud;
CJ
----------
60
60
90
99
60
20
35
55
50
58.7777778
已选择10行。
-----------------------------------------------------------------------------------------------------------------------
union 是对结果进行了处理,对于重复的多行只显示一条记录,在处理的过程中,需要进行排序。而union all不进行处理。因此前者的结果输出是排过序的![]()
本文通过具体的SQL查询示例对比了Union与Union All的区别。Union操作会移除结果集中的重复行,并对数据进行排序;而Union All则保留所有行,包括重复行,且不对结果进行排序。
7289

被折叠的 条评论
为什么被折叠?



