oracle中的合并查询

为了合并多个select语句的查询结果,可以使用集合操作符UNION,UNION ALL,INTERSECT和MINUS.语法如下:

 

None.gif SELECT语句1  [ UNION | UNION ALL | INTERSECT | MINUS ]  SELECT语句2

 

使用集合操作符有以下一些限制:

.对于LOB,VARRAY,嵌套表类来说,集合操作符无效

.对于LONG型,UNION ALL,INTERSECT和MINUS无效

.如果选择列表包含了表达式,必须指定别名

1。UNION,用于获取两个结果集的并集,会自动去掉结果集中的重复行,并会以第一列的结果进行排序,例:

 

None.gif select   *   from  employee  union   select   *   from  employee;

 

2。UNION ALL,与UNION相似,不同的是UNION ALL不会自动去处重复行,也不会以任何列排序

 

None.gif    select   *   from  employee  union   all   select   *   from  employee;

 

3。INTERSECT,用于获取两个结果集的交集,并且以第一列排序,如:

 

None.gif select   *   from  employee  intersect   select   *   from  employee  where  id = ' 1 ' ;

 

4。MINUS,用于获取结果集的差集(或者说补集),显示第一个结果集存在的,第2个结果集不存在的数据:

 

None.gif select   *   from  employee minus  select   *   from  employee  where  id = ' 1 ' ;

 

注意事项:

1。两个选择列表必须完全一致

2。可以连续使用集合操作符,这些操作符拥有相同优先级,多个操作符存在时,从左向右执行,如:

 

None.gif SQL >    select   *   from  employee minus  select   *   from  employee  where  id = ' 1 '   union   select   *   from  employee  where  id = ' 1 ' ;
None.gif
None.gif        ID NAME           SALARY EMAIL
None.gif
-- -------- ---------- ---------- ------------------------------
None.gif
          1  love              3100  fasda
None.gif         
2  love              4100  killme2008 @gmail
None.gif


 

99287.html

dennis 2007-02-11 20:01 发表评论
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值