Oracle Minuskeyword

  SQL中的MINUSkeyword

  SQL中有一个MINUSkeyword,它运用在两个SQL语句上,它先找出第一条SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果中。假设有的话,那这一笔记录就被去除,而不会在最后的结果中出现。假设第二个SQL语句所产生的结果并没有存在于第一个SQL语句所产生的结果内,那这笔资料就被抛弃,其语法例如以下:

  [SQL Segment 1]

  MINUS

  [SQL Segment 2]

--------------------------------------------

//创建表1

create table test1

(

 name varchar(10),

 sex varchar(10),

);

insert into test1 values('test','female');

insert into test1 values('test1','female');

insert into test1 values('test1','female');

insert into test1 values('test11','female');

insert into test1 values('test111','female');

//创建表2

create table test2

(

 name varchar(10),

 sex varchar(10),

);

insert into test1 values('test','female');

insert into test1 values('test2','female');

insert into test1 values('test2','female');

insert into test1 values('test22','female');

insert into test1 values('test222','female');

-------------------------------------------

select * from test1 minus select * from test2;

结果:

NAME       SEX            

---------- ----------

test1      female            

test11     female 

test111    female

-----------------------------------------------------------

select * from test2 minus select * from test1;

结果:

NAME       SEX            

---------- ----------

test2      female            

test22     female 

test222    female

结论: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

   )

  20.05 sec

  

  还有其他一下keyword:

  INTERSECT (交集)

  UNION ALL 并集

Oracle Minus 取差集的更多相关文章

  1. Oracle Minus关键字

    Oracle Minus关键字 SQL中的MINUS关键字 SQL中有一个MINUS关键字,它运用在两个SQL语句上,它先找出第一条SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果 ...

  2. [sql server、oracle] 分组取最大值最小值常用sql

    sqlserver2005前: --分组取最大最小常用sql--测试环境if OBJECT_ID('tb') is not null drop table tb;gocreate table tb(  ...

  3. 关于 js 2个数组取差集怎么取

    关于 js 2个数组取差集怎么取? 例如求var arr1 = [1]; var arr2 = [1,2];的差集方法一: Array.prototype.diff = function(a) { r ...

  4. Oracle minus用法详解及应用实例

    本文转载:https://blog.csdn.net/jhon_03/article/details/78321937 Oracle minus用法 “minus”直接翻译为中文是“减”的意思,在Or ...

  5. mysql取差集、交集、并集

    mysql取差集.交集.并集 博客分类: Mysql数据库 需求:从两个不同的结果集(一个是子集,一个是父集),字段为电话号码phone_number,找出父集中缺少的电话号码,以明确用户身份. 结合 ...

  6. oracle 分组取第一行数据 ,查询sql语句

    oracle  分组取第一行数据 SELECT * FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) rn, t.* FR ...

  7. Oracle的取整和四舍五入函数——floor,round,ceil,trunc使用说明

    Oracle的取整和四舍五入函数——floor,round,ceil,trunc使用说明 FLOOR——对给定的数字取整数位SQL> select floor(2345.67) from dua ...

  8. 问题:oracle floor;结果:Oracle的取整和四舍五入函数——floor,round,ceil,trunc使用说明

    Oracle的取整和四舍五入函数——floor,round,ceil,trunc使用说明 (2011-04-06 16:10:35) 转载▼ 标签: 谈 分类: 渐行渐远 FLOOR——对给定的数字取 ...

  9. oracle not in minus 取到的结果集不同

    not in:A not in B B中的集合不能包含空值

随机推荐

  1. 用连接池提高Servlet访问数据库的效率

    Java Servlet作为首选的服务器端数据处理技术,正在迅速取代CGI脚本.Servlet超越CGI的优势之一在于,不仅多个请求可以共享公用资源,而且还可以在不同用户请求之间保留持续数据.本文介绍 ...

  2. php5.6安装

    # yum --enablerepo=remi,remi-php56 install php-fpm php-common php-mysql php-opcache php-pear php-gd ...

  3. 16_用LVM扩展xfs文件系统(当分区空间不够时)

    1. 查看当前卷组空间(volume group)使用情况 [root@localhost ~]# vgdisplay 从下面的代码中发现剩余空间为0 --- Volume group --- VG ...

  4. delegate 中的BeginInvoke和EndInvoke方法

    开发语言:C#3.0 IDE:Visual Studio 2008 一.C#线程概述 在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能 ...

  5. Overloads和Overrides在元属性继承上的特性

    元属性继承可以使用IsDefined函数进行判断,先写出结论 如果使用Overrides,则元属性可以继承,除非在使用IsDefined时明确不进行继承判断,如 pFunction.IsDefined ...

  6. MOS管(场效应管)导通条件

    场效应管的导通与截止由栅源电压来控制,对于增强型场效应管来说,N沟道的管子加正向电压即导通,P沟道的管子则加反向电压.一般2V-4V就可以了.    但是,场效应管分为增强型(常开型)和耗尽型(常闭型 ...

  7. 【技术宅3】截取文件和url扩展名的N种方法

    //截取文件扩展名的N种方法   //第1种 //strrchr() 函数查找字符在指定字符串中最后一次出现的位置,如果成功,则返回其后面的字符串 //返回带有点的扩展名 function get_e ...

  8. RemoteViews嵌入ListView复杂布局

    from http://blog.csdn.net/liliang497/article/details/8308313 主要函数 public void setRemoteAdapter (int ...

  9. Tornado 的教材

    Tornado 的教材 作者:杨昆链接:https://www.zhihu.com/question/19707966/answer/12731684来源:知乎著作权归作者所有,转载请联系作者获得授权 ...

  10. 关于asp.net core部署到iis中出现 HTTP Error 502.5 - Process Failure的问题

    环境是windows Server2008R2 出现这个问题搞了一下午都没解决,最后又加班才算搞定,由于英文不太好,官方的文档看了好几遍,也按照文档做的,但还是出现这个问题,百度google搜了很多解 ...