SQL SELECT .... SQL UNIONUNION ALL 操作符SQL UNION 操作符: UNION 操作符用于合并两个或多个SELECT 语句的结果集。 ... 可以看出, 使用union 的时候, 结果集的排列顺序是按照升序排列的, 使用union all 的时候, 结果集是按照记录插入的先后顺序排列的。 union会过滤重复行数据,而union all则不会,会全部显示出来。 
select
' ' datenum,'' datenumber ,to_date(to_char(sysdate,'dd-mm-yyyy'),'dd-mm-yyyy') datetime from dual
union
select to_char(trunc(to_date(to_char(sysdate,'mm-dd-yyyy'),'mm-dd-yyyy'),'dd')-rn+1,'mm-dd-yyyy') datenum ,
to_char(trunc(to_date(to_char(sysdate,'mm-dd-yyyy'),'mm-dd-yyyy'),'dd')-rn+1,'mm-dd-yyyy') datenumber,
trunc(to_date(to_char(sysdate,'mm-dd-yyyy'),'mm-dd-yyyy'),'dd')-rn+1
datetime
from (select rownum rn from all_objects where rownum<32)
它的结果与union all的结果是不一样的。
 
select
to_char(trunc(to_date(to_char(sysdate,'mm-dd-yyyy'),'mm-dd-yyyy'),'dd')-rn+1,'mm-dd-yyyy') datenum ,
to_char(trunc(to_date(to_char(sysdate,'mm-dd-yyyy'),'mm-dd-yyyy'),'dd')-rn+1,'mm-dd-yyyy') datenumber,
trunc(to_date(to_char(sysdate,'mm-dd-yyyy'),'mm-dd-yyyy'),'dd')-rn+1
datetime
from (select rownum rn from all_objects where rownum<32)
union all  
select ' ' datenum,'' datenumber ,to_date(to_char(sysdate,'dd-mm-yyyy'),'dd-mm-yyyy') datetime from dual order by datetime desc
有时我们会根据需要来选择用union还是union all。比如我们要使用某些字段进行排序得到不同的结果。就需要注意union 与union all之间的细微差别了。