码迷,mamicode.com
首页 > 数据库 > 详细

Oracle集合操作

时间:2015-08-09 12:38:11      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:oracle集合操作   union   unionall   intersect   minus   


   在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取的是第一个集合中有但第二个集合中没有的记录。




版权声明:本文为博主原创文章,未经博主允许不得转载。

Oracle集合操作

标签:oracle集合操作   union   unionall   intersect   minus   

原文地址:http://blog.csdn.net/magi1201/article/details/47374267

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!