1 概述
1. Oracle 中有三种集合操作
(1) 并集 union all -- 不去重,不排序,效率高
union -- 去重,默认排序,效率低
(2) 交集 intersect
(3) 差集 minus
2. 注意事项
(1) 各个列的 '数据类型' 必须对应,保持一致 -- 否则会报错提示
查询结果集图示:(红色区域)
集合类型 | 关键字 | 描述 |
---|---|---|
并集 | union all union | ![]() |
交集 | intersect | ![]() |
差集 | minus | ![]() |
2 示例
with a as (
select 1 sno, 'a' sname from dual union all
select 2 sno, 'b' sname from dual
), b as (
select 1 sno, 'a' sname from dual union all
select 3 sno, 'c' sname from dual
)
select a.sno, a.sname, 'a' source from a
union all
-- union 并集(去重、排序)
-- intersect 交集
-- minus 差集
select b.sno, b.sname, 'b' source from b
查询结果:(其它集合操作同理)
sno sname source
1 a a
2 b a
1 a b
3 c b