• UNION是将两个或者两个以上的搜索结果集合并在一起!这个合并是有条件滴!记录的类型要匹配啦,记录的列数要一样啦!看看下面简单的例子:

  • 有的朋友会说为什么要用union呢,直接用txt3 in ('INDUSTRY','INDUSTRY2')不就可以了么,确实是可以的。但是如果是两个不同的表而且没什么关联的话必须要union了。

  • 有时候用in可能会很慢,如果改用union就效率就会快很多。因为in并不是最优的选择,碰上大表和复杂的查询的时候用下union可以提速不少!

  • UNION有两种用法,一种是UNION,另一种是UNION ALL。前者有distinct的功能,就是去掉重复的记录,而后者不会去重。看下区别吧!

  • MINUS和UNION相反,他是减去一部分结果集。同理他可以用not in来代替,但是有时候碰上大表和复杂的查询效率还是没minus好。

  • SQL中的MINUS关键字
      SQL中有一个MINUS关键字,它运用在两个SQL语句上,它先找出第一条SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果 中。如果有的话,那这一笔记录就被去除,而不会在最后的结果中出现。如果第二个SQL语句所产生的结果并没有存在于第一个SQL语句所产生的结果内,那这 笔资料就被抛弃,其语法如下:
      [SQL Segment 1]
      MINUS
      [SQL Segment 2]
  • 结论:Minus返回的总是左边表中的数据,它返回的是差集。注意:minus有剃重作用
  • 下面是我做的实验,很明显能够看出MINUS的效率,made_order共23万笔记录,charge_detail共17万笔记录

    性能比较:
      SELECT order_id FROM made_order
      MINUS
      SELECT order_id FROM charge_detail
      1.14 sec
      
      SELECT a.order_id FROM made_order a
      WHERE NOT exists (
       SELECT order_id
       FROM charge_detail
       WHERE order_id = a.order_id
       )
      18.19 sec
      
      SELECT order_id FROM made_order
      WHERE order_id NOT in (
       SELECT order_id
       FROM charge_detail
       )

oracle中union和minus的用法【oracle技术】的更多相关文章

  1. Oracle中Union与Union All的区别(适用多个数据库)

    Oracle中Union与Union All的区别(适用多个数据库) 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或 ...

  2. Oracle中 (+)与left join 的用法区别

    Oracle中 (+)与left join 的用法区别 原创 2017年01月11日 13:33:42 6648 select * from a,b where a.id=b.id(+); (+)写在 ...

  3. 分组函数group by和Oracle中分析函数partition by的用法以及区别

    1.分组函数group by和Oracle中分析函数partition by的用法以及区别 2.开窗函数.

  4. Oracle中的rownum,ROWID的 用法

    1.ROWNUM的使用——TOP-N分析 使用SELECT语句返回的结果集,若希望按特定条件查询前N条记录,可以使用伪列ROWNUM. ROWNUM是对结果集加的一个伪列,即先查到结果集之后再加上去的 ...

  5. (转)Oracle中的rownum,ROWID的 用法

    场景:在书写oracle的sql语句时候,如果语句不存在主键,需要删除几条重复的记录,这个时候如果不知道oracle中的伪列,就需要把所有的重复记录先删除,再插入.这样做好麻烦,可以通过伪列来定位记录 ...

  6. oracle中的CURRVAL和NEXTVAL用法

    原文:https://blog.csdn.net/qianyiyiding/article/details/51592689  1.什么是sequence?其作用是什么? 在Oracle数据库中,什么 ...

  7. oracle中的sys用户(修改密码)/////Oracle删除表空间的同时删除数据文件 ///// Oracle中如何保证用户只有一个session登录

    oracle中的sys用户(修改密码) (2011-07-01 09:18:11) 转载▼ 标签: it 分类: oracle 概念: SYS用户是Oracle中权限最高的用户,而SYSTEM是一个用 ...

  8. ORACLE中union/union all/Intersect/Minus用法

    Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序: Union All,对两个结果集进行并集操作,包括重复行,不进行排序: Intersect,对两个结果集进行交集操作,不包 ...

  9. Oracle 中union的用法

    UNION 指令的目的是将两个 SQL 语句的结果合并起来,可以查看你要的查询结果. 例如: SELECT Date FROM Store_Information UNION SELECT Date ...

随机推荐

  1. (转)SSIS_数据流转换(Union All&合并联接&合并)

    Union All : 与sql语言 Union All 一样,不用排序,上下合并多个表.Union All转换替代合并转换:输入输出无需排序,合并超过两个表 合并联接 : 有左连接.内连接.完全连接 ...

  2. uva1424

    Traveling salesmen of nhn. (the prestigious Korean internet company) report their current location t ...

  3. springcloud9----feign-client-without-hystrix

    package com.itmuch.cloud; import org.springframework.boot.SpringApplication; import org.springframew ...

  4. js输出大段html文档简便方法

    原文链接:https://zhidao.baidu.com/question/586477237.html 把要输出的html全部写在某个id中,然后复制过去,你想放多少都行 <script t ...

  5. SDN前瞻 软件定义网络的一些概念

    SDN的核心:可编程性 SDN的思想:SOA面向服务 面向服务的体系结构(service-oriented architecture SOA) 使网络连接的大量计算机易于合作,以 服务 而不是人工交互 ...

  6. linuxI/O重定向

    假设有这么一段python3程序: import sys ")sys.stderr.write("stderr1 ") 现在想要把程序的输出以及错误信息都存在文件中. 一 ...

  7. python 复数的数学四则运算

    print(+3j)+(-7j)) print(+3j)-(-7j)) print(+3j)*(-7j)) print(+3j)/(-7j))

  8. git看不到别人创建的远程分支

    解决办法: $ git fetch //取回所有分支(branch)的更新.如果只想取回特定分支的更新,可以指定分支名,例:$ git fetch <远程主机名> <分支名> ...

  9. 日志_测试代码_Delphi7

    1. 2.Delphi (Windows API 文件尾部添加) function LogFile(_str :string) :integer; var hFile :THandle; strFil ...

  10. vue 脚手架 (三,配置文件config, build目录)

    本文以转移至本人的个人博客,请多多关注! 本文以转移至本人的个人博客,请多多关注! 本文以转移至本人的个人博客,请多多关注! 本文以转移至本人的个人博客,请多多关注! 上篇文章咱们介绍了vue web ...