精华内容
下载资源
问答
  • oracle中minus

    2009-05-08 10:17:43
    [size=large]oracle中minus[/size] [code="java"]两个关联表的符合条件记录的交集,是于union作用相反. 例: select * from table where rownum
    [size=large]oracle中minus[/size]
    

    两个关联表的符合条件记录的交集,是于union作用相反. 
    例:
    select * from table where rownum<=20
    minus
    select *from table where rownum<=10
    展开全文
  • Oracle中minus取差集与intersect取交集 最近在业务遇到需要取两个结果集中的差集。 首先想到的是加条件where id not in(select id from table)这种类似的SQL语句,但是这种sql随着表数据的增加,后面的数据肯定会...

    Oracle中minus取差集与intersect取交集

    最近在业务中遇到需要取两个结果集中的差集。

        首先想到的是加条件where id not in(select id from table)这种类似的SQL语句,但是这种sql随着表数据的增加,后面的数据肯定会越来越多,所消耗的时间也会越来越久,所以觉得不可行。
        其次,我想到java中有存在对于两个集合方法:list1.removeAll(list2)来取差集,如果SQL返回两个结果集这种方法也可以实现,但再看list1.removeAll(list2)底层的实现是通过迭代,再每个元素调用contains()方法来实现的,故再数据量大的时候,这种方法的时间复杂度还是很高的,故也觉得不可行。
    在这里插入图片描述
        后来百度Oracle中有现成的函数minus来获取两个结果集的差集,来记录一下。

    minus:返回左边表减去右边表的数据,也就是差集。并且minus有剃重的作用。
    语法:
    select column1,column2 from table1 minus select column1,column2 from table2 ;

    select column1,column2 from table1 minus select column1,column2 from table2 where id='xxx';
    注:table1,tanle2可以是相同的表,也可以是不同的表,只要查询出来的列column1,column2相同就行。

    intersect:返回左右两边表都有的数据(和上面用法一样)
    语法:
    select column1,column2 from table1 intersect select column1,column2 from table2 ;

    select column1,column2 from table1 intersect select column1,column2 from table2 where id='xxx';

    总结:
    使用minus取差集,使用intersect取交集,当然还有最常用的union all取并集。
    同时使用minus的效率也大于使用 not in 和 not exists这种查询方式的。

    展开全文
  • Oracle中Minus的使用

    2019-08-06 15:07:32
    Oracle Minus关键字  SQLMINUS关键字  SQL有一个MINUS关键字,它运用在两个SQL语句上,它先找出第一条SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果。如果有的话,那这一笔记录就被...

    在项目里看到别人写的minus。尽管之前有看到别人写过minus,自己也看过minus,但从没写过minus关键字的博客,于是写了这篇初步认识。
    Oracle Minus关键字
      SQL中的MINUS关键字
      SQL中有一个MINUS关键字,它运用在两个SQL语句上,它先找出第一条SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果中。如果有的话,那这一笔记录就被去除,而不会在最后的结果中出现。如果第二个SQL语句所产生的结果并没有存在于第一个SQL语句所产生的结果内,那这笔资料就被抛弃,其语法如下:
    [SQL Segment 1]
      MINUS
     [SQL Segment 2]
    即返回[SQL Segment 1]中与[SQL Segment 2]不重复的数据。
    示列:

    //test1表
    
        NAME        SEX            
        ---------- ---------- 
        test         female 
        test1        female  
        test1        female            
        test11       female  
        test111      female 
    
    //test2表
    
        NAME       SEX            
        ---------- ---------- 
        test       female
        test2      female 
        test2      female            
        test22     female  
    	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有剃重作用

    展开全文
  • oracle中minus的使用

    2016-03-29 10:13:45
    工作遇到一个问题,oracle中两张表结构完全相同的表,a,b。要从a向b刷数据,有时候,并不一定全部刷过去,b的数据可能要比a的数据少,然后,根据sj这个字段,再手工按照差的天数sj进行依次导入。每月这么多...

    工作中遇到一个问题,oracle中两张表结构完全相同的表,a,b。要从a中向b刷数据,有时候,并不一定全部刷过去,b中的数据可能要比a中的数据少,然后,根据sj这个字段,再手工按照差的天数sj进行依次导入。每月这么多天,如果能查出来,b比a少的这些数据的sj字段,工作量就会减少。
    其实,就是两个表关联了,网上查了查,minus正好符合需求。
    用如下类似语句

    select * from a where yf=2
    minus
    select * from b where yf=2

    结果:可以查询出表a中存在而表b中不存在的数据信息。可是排序的结果是默认排序,不符合按sj降序排序的要求。

    仅仅按如下语句:

    select * from a where yf=2
    minus
    select * from b where yf=2
    order by sj desc;

    会报语法错误“not invalid column name”

    所以,问题又来了,用了minus,order by sj,又不太好用,百度了半天没发现答案,还是google好,在第一个外文文章中找到答案了。
    所以,加工了一下,如下语句可达到效果,无语法错误:

    select * from a where yf=2
    minus
    select * from b where yf=2
    order by 6 desc;

    其中6为sj字段在结果表中的列的数目。

    展开全文
  • Oracle minus用法详解及应用实例Oracle minus用法“minus”直接翻译为中文是“减”的意思,在Oracle中也是用来做减法操作的,只不过它不是传统意义上对数字的减法,而是对查询结果集的减法。A minus B就意味着将结果...
  • oracle中minus的用法

    千次阅读 2014-10-29 11:27:08
    最近做项目时,做到这样一个需求,就是获取上一次的登录时间,用到了Oracle中minusminus运算的主要功能是:在进行两个表格或者两个查询结果的时候 ,返回在第一个表格/查询结果与第二个表格/查询结果不...
  • oracle中minus和union的基本用法

    千次阅读 2016-06-09 11:27:36
    oracle数据库开发少不了sql语句,sql有这样一个对集合的操作,他就是union和minus(和intersect基本一样)。 union是将两个或者两个以上的搜索结果集合并到一起,这个合并条件是: 记录的类型要匹配,记录的列...
  • 这两天写程序的时候用到了两个表格数据的比较,学习到了minus的用法,小小的总结了一下 minus运算的主要功能是: 在进行两个表格或者两个查询结果的时候 , 返回在第一个表格/查询结果与第二个表格/查询结果不...
  • MySQL 的并集、交集和差集 table1 如下:+----+------+| id | name |+----+------+| 1 | a || 4 | c || 5 | d || 6 | e |+----+------+table2 如下:+----+------+| id | name |+----+------+| 1 | a...
  • oracle中minus,union

    2017-12-26 11:23:34
    oracle中minus用来做减法操作,对结果集进行减法操作,A minus B就意味着将结果集A去除结果集B所包含的所有记录后的结果,即在A存在,而在B不存在的记录。就是去除A表和B表的交集,对于B表存在而A表不存在...
  • Oracle中minus运算的主要功能是:在进行两个表格或者两个查询结果的时候,返回在第一个表格/查询结果与第二个表格/查询结果不同样的记录。 结果不同样的记录包括两种情况:A,B表某一行的内容不同和A表的...
  • Oracleminus使用

    2020-11-23 14:45:45
    Oracleminus使用 minus 连接两个结果集,最终生成一个结果集。 功能是:第二个结果集,不会出现在最终结果集中; 如果第一个结果集的内容,在第二个结果集之内有包含,则包含的部分在最终结果集被舍弃。 其实就是...
  • oracleminus

    2013-02-20 17:53:37
    --oracleminus --返回第一个表有、第二个表没有的数据  create table union_tab_1 (  id int,  val varchar(10) ); create table union_tab_2 (  id int,  val varchar(10) ); ...
  • OracleMINUS

    2020-10-23 15:15:42
    Store_Information表格 Store_Name Sales Txn_Date Los Angeles 1500 05-Jan-1999 San Diego 250 07-Jan-1999 Los Angeles 300 08-Jan-1999 Boston 700 ... ...
  • SELECT * FROM table_a MINUS SELECT * FROM table_b; --取A表有且B表无的 SELECT * FROM table_a UNION SELECT * FROM table_b; --取A表有或B表有的
  • Oracle SQL Minus

    2009-12-31 10:05:53
    [code="sql"] select * from xx ...minus select * from yy [/code] it will pick up all different records. it is usefull when compare 2 result set to find the differences.
  • Oracle Minus

    2016-04-20 17:48:06
    Oracle Minus关键字  SQLMINUS关键字  SQL有一个MINUS关键字,它运用在两个SQL语句上,它先找出第一条SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果 。如果有的话,那这一笔记录就被...
  • oracle minus

    2009-11-11 23:54:00
    minus运算 返回在第一个查询结果与第二个查询结果不相同的那部分行记录。 有哪些工种在财会部有,而在销售部没有? exp:selectjobfromaccount minus selectjobfromsales; 与union相反
  • 替代Oracleminus写法

    2019-10-05 12:27:58
    1 SELECT * 2 FROM Table1 a 3 LEFT JOIN Table2 b 4 ON a.Col1 = b.Col1 AND a.Col2 = b.Col2 ...适用非Oracle的数据库,还有一种写法总感觉没这优雅,因为用了NOT EXISTS 1 SELECT * 2 FROM Table1...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,299
精华内容 6,919
关键字:

oracle中minus