简单的说就是去同留异。

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      $750
而我们要找出来所有有营业额 (sales) 的日子。要达到这个目的,我们用以下的 SQL 语句:
SELECT Date FROM Store_Information
UNION
SELECT Date FROM Internet_Sales
结果:
Date
Jan-05-1999
Jan-07-1999
Jan-08-1999
Jan-10-1999
Jan-11-1999
Jan-12-1999
有一点值得注意的是,如果我们在任何一个 SQL 语句 (或是两句都一起) 用 "SELECT DISTINCT Date" 的话,
那我们会得到完全一样的结果。
名字可以不一样。但是,数据类型必须相似。
也就是说主表(第一个表)第一列是varchar(100),副表(第一个以外的所有表)的第一列都要是varchar(100&&<100)(char好像也可以你试一下吧,或是可以自动转换数据类型),其它是不行的,
还有几个表的列数必须相同
++++++++++++++++++++++++
与MINUS功能类似的有
第一个
SELECT   表1.*    
FROM     表1,   表2
WHERE    表1.主键=表2.主键(+)  
AND   表2.主键   IS   NULL;
第二个
select   *   from   表1   where   not   exists(select   1   from   表2   where   表1.主键=表2.主键);
第三个
select   *   from   表1   where   表1.主键 not   in (select  主键   from   表2);
当然效率较高的还是MINUS。

minus的用法的更多相关文章

  1. oracle中union和minus的用法【oracle技术】

    UNION是将两个或者两个以上的搜索结果集合并在一起!这个合并是有条件滴!记录的类型要匹配啦,记录的列数要一样啦!看看下面简单的例子: 有的朋友会说为什么要用union呢,直接用txt3 in ('I ...

  2. 【oracle】union、union all、intersect、minus 的用法及区别

    一.union与union all 首先建两个view create or replace view test_view_1 as as c from dual union as c from dua ...

  3. NOT EXIST和NOT IN 和MINUS的用法

    MINUS SELECT count(id) FROM householdstaffs s WHERE s.idcardno in( SELECT h.idcardno FROM households ...

  4. SQL中MINUS的用法与UNION的用法

    一:MINUS指令 其是运用在两个 SQL 语句上.它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL语句的结果中.如果有的话,那第一个SQL结果数据就被去除,而不会在最后 ...

  5. tensorflow 笔记10:tf.nn.sparse_softmax_cross_entropy_with_logits 函数

    函数:tf.nn.sparse_softmax_cross_entropy_with_logits(_sentinel=None,labels=None,logits=None,name=None) ...

  6. 如何在Oracle中 查询一个表被其他数据库对象引用[z]

    这两天老大让我再oracle中把要替换的表被其他对象引用之处找出来,整理一份表,接到这个任务,我是一脸懵逼,怎么找?大海捞针么?问同事.查资料,自己研究,最后整理一下仅供大家参考,同时以备将来回顾.本 ...

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

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

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

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

  9. Oracle中INTERSECT,MINUS,UNION,UNION ALL用法

    intersect 就是交集minus 就是差集 交集就是两个结果集中都有的元素 比如 select uid from tb1 intersect select uid from tb2 那么既存在t ...

随机推荐

  1. 尝试跑一跑Scut

    前段时间都在用 IIS+WCF+Redis+MSSQL 的框架做服务器,前段时间看到了 Scut 的开源框架,整个架构还是蛮干净整洁的... 今天抓来跑一跑. 按照教程安装好所有的环境,版本是6.7. ...

  2. codevs 1107 等价表达式

    传送门 题解:第一眼这题好像非常难得样子,简直没有思路.但是这可以用栈带入特殊值来解决.这里用到两个栈,一个是存贮数字,另一个存贮运算符,按优先级进行运算.当读入的运算符比运算符栈的栈顶元素优先级低时 ...

  3. .NET调用osql.exe执行sql脚本创建表和存储过程

    using System;using System.Diagnostics;using System.Windows.Forms; namespace WindowsFormsApplication1 ...

  4. CSS中定位position

    毋庸置疑的是,pisition是css中是最重要的属性之一. 一共有四种定位方式,static.relative.absolute.fixed. 默认的定位方式static 页面中所有的元素默认都是s ...

  5. 【转】BLE开发的各种坑

    原文网址:http://www.race604.com/android-ble-tips/ 这段时间在做低功耗蓝牙(BLE)应用的开发(并不涉及蓝牙协议栈).总体感觉 Android BLE 还是不太 ...

  6. 【数学】XMU 1597 GCD

    题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1597 题目大意: 求(am-bm, an-bn),结果取模1000000007,a,b ...

  7. WCF默认实例的解读

    一:图片 IService1.cs是定义的接口,包含对Service.方法和方法用的类的声明的声明 Service1.cs是对接口的实现,包含实现的方法 代码注释: using System; usi ...

  8. 未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?) 转

    未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?)   项目中 App_Code 文件夹中的类的命名空间,在添加的页面的  using XXXX  时,提示 未能找到类 ...

  9. Understanding the Android Life Cycle

    Problem Android apps do not have a “main” method; you need to learn how they get started and how the ...

  10. Java类加载器深入理解

    本篇文章主要是详细写一下个人对Java ClassLoader的理解. 首先回顾一下,java虚拟机载入java类的步骤:java文件经过编译器编译后变成字节码文件(.class文件),类加载器(Cl ...