注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

程序员小站

J2EE丨Spring | JVM | Scala

 
 
 

日志

 
 

Oracle集合操作  

2012-02-19 11:14:01|  分类: 数据库 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
集合操作用于两个或多个查询结果中取交集、并集、补集。
并集: union   : 用于返回两个查询结果集的并集
   union all : 用于返回两个查询结果集的并集以及两个结果集的重复部分,重复部分会出现两次
交集:intersect  用于返回两个查询结果集的交集
补集:minus 用于返回两个查询结果集的补集

注意交集并集改变查询顺序对结果无影响,但是补集查询结果却影响很大。
比如说A minus B是把A结果集中有B的行全部去除。也就是从A中去除AB的交集。如果写成B minus A则是从B中去除交集

union:

SQL> select * from table1
2 union
3 select * from table3;

ID PID
---------- ----------
301
30101 301
30102 301
30103 301
30104 301
3010401 30104
3010402 30104
3010403 30104
30100001 301
30100002 301
30100003 301

ID PID
---------- ----------
30100004 301

union all:

SQL> select * from table1
2 union all
3 select * from table3;

ID PID
---------- ----------
301
30101 301
30102 301
30103 301
30104 301
3010401 30104
3010402 30104
3010403 30104
3010401 30104
3010402 30104
3010403 30104

ID PID
---------- ----------
30100001 301
30100002 301
30100003 301
30100004 301

已选择15行。

insersect:

SQL> select * from table1
2 intersect
3 select * from table3;

ID PID
---------- ----------
3010401 30104
3010402 30104
3010403 30104

minus: A minus B

SQL> select * from table1
2 minus
3 select * from table3;

ID PID
---------- ----------
301
30101 301
30102 301
30103 301
30104 301

minus:B minus A

SQL> select * from table3
2 minus
3 select * from table1;

ID PID
---------- ----------
30100001 301
30100002 301
30100003 301
30100004 301


重要说明:1.两个结果集中的列在数量、顺序和数据类型要保持一致
 2.除 union all之外,系统会自动把重复的数据删除。
 3.系统会把第一个查询出的列名显示在输出中
 4.除 union all之外,系统会把第一个查询除的第一个列升序排列。
  评论这张
 
阅读(525)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018