一:MINUS指令

其是运用在两个 SQL 语句上。
它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 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功能类似的有
第一个
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。

二: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

我们用以下的 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好像也可以,或是可以自动转换数据类型),其它是不行的,还有几个表的列数必须相同。

备注:随笔内容来源于网上资料整理,仅供参考。

SQL中MINUS的用法与UNION的用法的更多相关文章

  1. 转载:SQL中的case when then else end用法

    SQL中的case when then else end用法 来源: http://www.cnblogs.com/prefect/p/5746624.html Case具有两种格式.简单Case函数 ...

  2. SQL中CONVERT日期不同格式的转换用法

    SQL中CONVERT日期不同格式的转换用法 格式: CONVERT(data_type,expression[,style]) 说明:此样式一般在时间类型(datetime,smalldatetim ...

  3. SQL中的case when then else end用法

    --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' ...

  4. [转]SQL中的case when then else end用法

      Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' EN ...

  5. SQL中TOP,LIMIT,ROWNUM的用法

    SQL SERVER/MS Access的Select Top的用法: Select TOP number|percent table_columname FROM tablename MySQL/O ...

  6. SQL中的charindex函数与reverse函数用法

       ----------------------首先介绍charindex函数-----------------------------                                ...

  7. sql中的内联和外联(简单用法)

    有两张表:user和department User表: CREATE TABLE `user` (    `id` int(11) NOT NULL AUTO_INCREMENT,    `name` ...

  8. SQL 中LTrim、RTrim与Trim的用法

    LTrim.RTrim与 Trim 函数 返回 Variant (String),其中包含指定字符串的拷贝,没有前导空白 (LTrim).尾随空白 (RTrim) 或前导和尾随空白 (Trim).语法 ...

  9. SQL中 Decode 和 Sign 语法的简单用法

    含义解释:decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN R ...

随机推荐

  1. Java各类型占字节数

    byte 1字节short 2字节int 4字节long 8字节float 4字节double 8字节char 2字节boolean 1字节 其中,换算关系: 1GB=1024MB 1MB=1024K ...

  2. uni-app-v-else中不需要值

    这个问题把我都高懵逼了 在vue中, 但是在uni-app中:v-else不需要值, 下面去掉值就Ok了

  3. MySQL使用Navicat远程连接时报错1251

    1.报错信息 client does not support authentication protocol requested by server:consider upgrading MySQL ...

  4. Java基础/利用fastjson反序列化json为对象和对象数组

    利用fastjson反序列化json为对象和对象数组 利用 fastjosn 将 .json文件 反序列化为 java.class 和 java.util.List fastjson 是一个性能很好的 ...

  5. Web高级 JavaScript中的算法

    算法 排序算法 稳定排序 待排序序列中相等元素在排序完成后,原有先后顺序不变. 非稳定排序 有序度 待排序序列中有序关系的元素对个数. 逆序度 1. 插入排序 遍历有序数组,对比待插入的元素大小,找到 ...

  6. herizai_CD2所做答案

    //herizai_CD1第一题 #include<iostream> #include<iomanip> using namespace std; void print1(i ...

  7. [Python3] 019 函数:确认过参数,返回对的值

    目录 0. 函数简介 1. 初识函数 2. 函数的参数与返回值 少废话,上例子 3. 查找函数的帮助文档 4. 函数的参数 (1) 参数分类 (2) 结构介绍 1) 普通参数 2) 默认参数 3) 关 ...

  8. mysql修改库、表、字段 字符集,中文排序

    查看字段编码: show full columns from t2;show variables like '%character%';show variables like 'collation_% ...

  9. 《剑指offer》面试题21 包含min函数的栈 Java版

    (min函数的作用是返回栈内最小值) 首先这个栈要具有普通栈所具有的push()和pop()方法,那么内部一定包含一个Stack.至于还要能实现min函数,而且还是在O(1)时间复杂度内,我们不得不考 ...

  10. Vue基于vuex、axios拦截器实现loading效果及axios的安装配置

    准备 利用vue-cli脚手架创建项目 进入项目安装vuex.axios(npm install vuex,npm install axios) axios配置 项目中安装axios模块(npm in ...