Oracle集合操作

2015-11-21 01:47:45 · 作者: · 浏览: 2

?

Oracle中提供了三种类型的集合操作: 并(UNION)、交(INTERSECT)、差(MINUS)

UNION:将多个查询的结果组合到一个查询结果之中,并去掉重复值 UNION ALL:将多个查询结果组合到一个查询结果中,但是包含重复值 INTERSECT:返回多个查询结果相同的部分

MINUS:返回两个查询结果的差集

首先,创建另一个表 emp10

?

-- 创建重复数据表 emp10
create table emp10 as (select * from emp where deptno = 10);

?

查看emp10 和 emp 表数据项,emp10 共有3条记录,emp表有14条记录。

?

select * from emp10;

\

?

?

select * from emp;

\

?

union 多个结果并集,并去掉重复值

?

select * from emp10
union
select * from emp

\

?

union all 取并集且不去除重复项

?

select * from emp10
union all
select * from emp

\

?

intersect 返回多个查询结果相同的部分

?

select * from emp10
intersect 
select * from emp;

\

?

minus 取差集

?

select * from emp
minus
select * from emp10;

\

?

换个写法

?

select * from emp10
minus
select * from emp;

\

?

通过换写法之后的查询结果,可以看出,minus取的是第一个集合中有但第二个集合中没有的记录。