精华内容
下载资源
问答
  • SQL中MINUS的用法

    千次阅读 2020-02-18 13:54:22
    minus指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果。如果有的话,那这一笔资料就被去除,而不会在最后的结果出现。如果第二个 SQL 语句所...

    minus指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中。如果有的话,那这一笔资料就被去除,而不会在最后的结果中出现。如果第二个 SQL 语句所产生的结果并没有存在于第一个 SQL 语句所产生的结果内,那这笔资料就被抛弃。
    MINUS 的语法如下:
    [SQL 语句 1]
    MINUS
    [SQL 语句 2]
    我们继续使用一样的例子:
    Store_Information 表格
    store_name Sales Date
    Los Angeles $1500 Jan-05-1999
    San Diego $250 Jan-07-1999
    Los Angeles $300 Jan-08-1999
    Boston $700 Jan-08-1999

    Internet Sales 表格 Date Sales
    Jan-07-1999 $250
    Jan-10-1999 $535
    Jan-11-1999 $320
    Jan-12-1999 $750

    而我们要知道有哪几天是有店面营业额而没有网络营业额的。要达到这个目的,我们用以下的 SQL 语句:
    SELECT Date FROM Store_Information
    MINUS
    SELECT Date FROM Internet_Sales
    结果:
    Date
    Jan-05-1999
    Jan-08-1999

    “Jan-05-1999”, “Jan-07-1999”, and “Jan-08-1999” 是 “SELECT Date FROM Store_Information” 所产生的结果。在这里面,“Jan-07-1999” 是存在于 “SELECT Date FROM Internet_Sales” 所产生的结果中。因此 “Jan-07-1999” 并不在最后的结果中。
    请注意,在 MINUS 指令下,不同的值只会被列出一次。
    SQL中的UNION用法
    UNION 指令的目的是将两个 SQL 语句的结果合并起来。从这个角度来看, UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION 的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT)。
    UNION 的语法如下:
    [SQL 语句 1]
    UNION
    [SQL 语句 2]
    假设我们有以下的两个表格,
    表格: Store_Information
    store_name Sales Date
    Los Angeles $1500 Jan-05-1999
    San Diego $250 Jan-07-1999
    Los Angeles $300 Jan-08-1999
    Boston $700 Jan-08-1999
    表格: Internet Sales
    Date Sales
    Jan-07-1999 $250
    Jan-10-1999 $535
    Jan-11-1999 $320
    Jan-12-1999 KaTeX parse error: Expected 'EOF', got '&' at position 370: …列都要是varchar(100&̲&<100)(char好像也可…{hyxf.trans_dt}’ AND IS_RESYNC = ‘0’
    MINUS
    SELECT LOAN_TYP FROM BH_PROD_TRANS_LOG WHERE SYNC_DT= ‘${hyxf.trans_dt}’ and IS_REDO =‘0’) T1
    LEFT JOIN --将从一个表中查出的数据左关联T2
    PROD_CONFIG T2
    ON T1.LOAN_TYP= T2.LOAN_TYP);–关联条件

    展开全文
  • SQLMINUS 用法

    千次阅读 2016-10-18 14:54:42
    MINUS: 返回存在于A表,但不存在于B表的数据。 语法: SELECT COL1,COL2  FROM TABLE_A [ WHERE conditions ]  MINUS  SELECT COL1 , COL2  FROM TABLE_B [ WHERE conditions ]

    MINUS:  返回存在于A表中,但不存在于B表中的数据。

    语法: SELECT  COL1,COL2

                FROM TABLE_A  [ WHERE conditions ]

                MINUS

                SELECT COL1 , COL2

                 FROM TABLE_B [ WHERE conditions ][ WHERE conditions ]。

    Oracle 数据库支持 MINUS 用法,SQL Server, PostgreSQL, and SQLite 可以使用Except代替



    
    
    展开全文
  • SQL中MINUS、INTERSECT、UNION、UNION All

    千次阅读 2014-02-13 13:20:23
    差集:MINUS 交集:INTERSECT 并集:UNION、UNION All。UNION将重复的元组去掉,UNION ALL则不会。   表Store_Information 店面营业表 store_name Sales Date 分店1 1500 ...
    一、基本概念
    差集:MINUS
    交集:INTERSECT
    并集:UNION、UNION All。UNION将重复的元组去掉,UNION ALL则不会。
     
    表Store_Information 店面营业表

    store_name

    Sales

    Date

    分店1

    1500

    2013-01-05

    分店2

    250

    2013-01-07

    分店1

    300

    2013-01-08

    分店3

    700

    2013-01-08


    表Internet Sales 网络营业表

    Date

    Sales

    2013-01-07

    850

    2013-01-10

    535

    2013-01-11

    320

    2013-01-12

    750

    应用两个集合的相减,相交和相加时,是有严格要求的:内部的SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。每条SELECT 语句中的列的顺序必须相同

    ①两个集合的字段必须明确,用*报错
    ②字段类型和顺序相同,名称可以不同,如集合1的字段1是NUMBER,字段2是VARCHAR,那集合2的字段1必须也是NUMBER,字段2必须是VARCHAR
    ③不能排序,如果要对结果排序,可以在集合运算后,外面再套一个查询,然后排序。
    SELECT * FROM (SELECT order_id FROM made_order MINUS SELECT order_id FROM charge_detail) ORDER BY ORDER_ID 

    二、MINUS

    SELECT column_name(s) FROM table_name1
    MINUS
    SELECT column_name(s) FROM table_name2

    查找有店面营业额,但没有网络营业额的日期。
    SELECT Date FROM Store_Information
    MINUS
    SELECT Date FROM Internet_Sales
    结果:
    Date
    2013-01-05
    2013-01-08
    可以这样理解,两个表的Date字段组成了一个[5,7,8,10,11,12]全集,减去网络营业表的Date[7,10,11,12]剩下[5,8]就是需要的结果。

    三、UNION、UNION All
    查找所有有营业额的日子
    SELECT Date FROM Store_Information
    UNION
    SELECT Date FROM Internet_Sales
    Date 
    2013-01-05 
    2013-01-07 
    2013-01-08
    2013-01-10 
    2013-01-11
    2013-01-12

    UNION ALL 和 UNION 不同之处在于 UNION ALL 会将每一笔符合条件的数据都列出来,无论资料值有无重复。

    SELECT Date FROM Store_Information
    UNION ALL
    SELECT Date FROM Internet_Sales
    Date 
    2013-01-05 
    2013-01-07 
    2013-01-08 
    2013-01-08 
    2013-01-07 
    2013-01-10 
    2013-01-11
    2013-01-12

    四、INTERSECT可以查相关资料

    五、性能问题和注意点

    虽然同样的功能可以用简单SQL语句来实现,但性能差别非常大。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 a.order_id NOT exists (
     SELECT order_id
     FROM charge_detail
     WHERE order_id = a.order_id
    )
    耗时:18.19 sec

    性能相差15.956倍。因此在遇到这种问题的时候,还是用MINUS,INTERSECT和UNION ALL来解决问题。


    原帖地址:
    http://www.cnblogs.com/fxgachiever/archive/2010/09/10/1823057.html
    http://blog.csdn.net/gan690416372/article/details/5012397
    展开全文
  • sql中MInus

    2009-02-25 12:23:00
    MINUS 指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果。如果有的话,那这一笔资料就被去除,而不会在最后的结果出现。如果第二个 SQL 语句所...

    MINUS 指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中。如果有的话,那这一笔资料就被去除,而不会在最后的结果中出现。如果第二个 SQL 语句所产生的结果并没有存在于第一个 SQL 语句所产生的结果内,那这笔资料就被抛弃。

    MINUS 的语法如下:

    [SQL 语句 1]
    MINUS
    [SQL 语句 2]

    我们继续使用一样的例子:

    Store_Information 表格

    store_name Sales Date
    Los Angeles $1500 Jan-05-1999
    San Diego $250 Jan-07-1999
    Los Angeles $300 Jan-08-1999
    Boston $700 Jan-08-1999
    Internet Sales 表格
    Date Sales
    Jan-07-1999 $250
    Jan-10-1999 $535
    Jan-11-1999 $320
    Jan-12-1999 $750

    而我们要知道有哪几天是有店面营业额而没有网络营业额的。要达到这个目的,我们用以下的 SQL 语句:

    SELECT Date FROM Store_Information
    MINUS
    SELECT Date FROM Internet_Sales

    结果:

    Date
    Jan-05-1999
    Jan-08-1999

    "Jan-05-1999", "Jan-07-1999", and "Jan-08-1999" 是 "SELECT Date FROM Store_Information" 所产生的结果。在这里面,"Jan-07-1999" 是存在于 "SELECT Date FROM Internet_Sales" 所产生的结果中。因此 "Jan-07-1999" 并不在最后的结果中。

    请注意,在 MINUS 指令下,不同的值只会被列出一次。

    展开全文
  • 一:MINUS指令 其是运用在两个 SQL 语句上...如果第一个 SQL 语句所产生的结果并没有存在于第二个 SQL 语句所产生的结果内,那第一个SQL结果数据就被保留,会在最后的结果出现。MINUS 的语法如下:[SQL 语句 1]M...
  • MINUS使用方法(sql优化)

    千次阅读 2017-09-15 17:40:40
    要比较A和B的差异 两个逻辑 B在A没有的数据就是name:A,B ,语法:select name from TEST_A minus select name from TEST_B ;结果集: 另一个逻辑,B比A多的数据,就是A没有的数据,语法:select name fr
  • Sql中MINUS

    2009-07-17 11:50:35
    此资源为.txt文件,里面描述了sql中minus的使用方法和案例,如果需要可以下载
  • Oracle中Minus的使用

    2019-08-06 15:07:32
    在项目里看到别人写的minus... SQL中有一个MINUS关键字,它运用在两个SQL语句上,它先找出第一条SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果。如果有的话,那这一笔记录就被去除,而不会在...
  • minus vs not exists

    2020-11-04 16:28:45
    minus会对所有表进行全表扫描,除非where语句里的字段加了索引。 minus需要两个查询拥有相同数量的列,每一列都得类型相同。 minus会返回第一个查询的所有记录,列不一定和第二个查询的结果的列对应。 minus默认...
  • 1、intersect运算符intersect运算符通过只包括TABLE1和TABLE2中都有的行并消除所有重复行而...2、minus运算符minus运算符通过只包括TABLE1和TABLE2中都有的行并消除所有重复行而派生出一个结果表。当all随minus一...
  • SQL MINUS

    2019-07-25 18:53:37
    MINUS 从前面的结果集中减去后面的结果集 select a.* from tab_a a where a.id in ('1','2') MINUS select a.* from tab_a a where a.id ='1' 等价于 select a.* from tab_a a where a.id ='2' select 后面必须...
  • 今天写了一个曲折的SQL,大概是这样 -- 有可能是我给人家写复杂了 with org_year_view as( select distinct org, year from A ) select * from A minus -- find data that cannot be used because of missing data ...
  • SQL语句的三个关键字:MINUS(减去),INTERSECT(交集)和UNION ALL(并集);   关于集合的概念,中学都应该学过,就不多说了.这三个关键字主要是对数据库的查询结果进行操作,正如其中文含义一样:两个查询,MINUS是从第一...
  • 在实验代码的时候发现minus一直报错,找了好久才知道minus是Oracle里面的语法,SQL server 应用 EXCEPT。
  • 面试 SQL整理 常见的SQL面试题:经典50题

    万次阅读 多人点赞 2019-09-12 22:16:11
    目录 ​ SQL基础知识整理: 常见的SQL面试题:经典50题 三、50道面试题 ...sql面试题:topN问题 ...【面试题类型总结】这类题目属于行列...select 查询结果 如:[学号,平均成绩:组函数avg(成绩)]from 从哪张表查找数...
  • 八.Sql serverintersect, minus的用法

    千次阅读 2012-10-31 13:58:00
    在这一节我们主要讲解下intersect,和minus用法: Intersect常用来选择两个表格相关联的事物,它是对两个SQL语句所产生的结果作处理的. 它的作用有点像and的用法,就是说所选择的这个值要存在于第一句和第二句...
  • SQL】对比两个表数据是否一致-minus select * from table1 minus select * from table2; 返回Empty 表示查询数据结果为一致, 若不一致,会返回table1与table2不同的数据集。 注意:在 MINUS 指令下,不同的...
  • 例子: create table A ( num number(10));...表A记录为1 2 3 9 表B记录为2 3 4 5 现在要查询出1 9,可以用下面三个语句 (1)select a.num from A a where a.num not in (select b.num from B b);...
  • SQL语句的三个关键字:MINUS(减去),INTERSECT(交集)和UNION ALL(并集);关于集合的概念,中学都应该学过,就不多说了.这三个关键字主要是对数据库的查询结果进行操作,正如其中文含义一样:两个查询,MINUS是从第一个查询...
  • UNION 取sql的并集,自动去重 INTERSECT 取两者交集 MINUS 取前者减后者剩余 注: 1.except只能用于SQLserver 2.配合all一起使用时,会显示重复行
  • SQL MINUS的用法

    2015-03-07 12:10:26
    MINUS 指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果。如果有的话,那这一笔资料就被去除,而不会在最后的结果出现。如果第二个 SQL 语句...
  • 数据库中minus的用法

    千次阅读 2017-07-27 10:18:01
    minus指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果。如果有的话,那这一笔资料就被去除,而不会在最后的结果出现。如果第二个 SQL 语句所...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,777
精华内容 7,910
关键字:

sql中的minus