本篇文章简单记录一下union与union all的区别。
首先,union 和 union all 都是用于合并多个select语句结果集的
区别:当select多个结果集,如果结果集重复了,union会去除重复,而union all会全部查出来
select seq_case_catalogid.nextval,t.* from(select '1','2' from dual union all select '1','2' from dual) t
select seq_case_catalogid.nextval,t.* from(select '1','2' from dual union select '1','2' from dual) t
注意: union/unionall 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同
另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
比如我将第一个select语句中的列名起个别名,则整个结果集的列名就依照其显示
select seq_case_catalogid.nextval,t.* from(select '1' 第一列,'2' 第二列 from dual union all select '1','2' from dual) t