日期:2014-05-16  浏览次数:20383 次

union 和 union all 的区别。

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 不排序

?

union 是对结果进行了处理,对于重复的多行只显示一条记录,在处理的过程中,需要进行排序。而union all不进行处理。因此前者的结果输出是排过序的.