17 May 2013
SQL> select 3 from dual union select 4 from dual;
3
----------
3
4
SQL> select 3 from dual union select 3 from dual;
3
----------
3
SQL> select 3 from dual union all select 3 from dual;
3
----------
3
3
union和union all都是把两组数据放到一起。相当于放到一个结果集里。列数需要相同,不同的要用同类型来占位。比如TO_CHAR(NULL)。区别是union all允许有重复。union会把重复的行去掉。这样使用union的时候就会消耗更多的资源,因为消除重复行的同时,需要进行排序。如果已经预知了结果集不会有重复行,则应该使用union all。