zoukankan      html  css  js  c++  java
  • SQL 操作结果集 -并集、差集、交集、结果集排序

    操作结果集

      为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物。

      表:Person_1魏国人物

       

      表:Person_2蜀国人物

      

      A、Union形成并集

        Union可以对两个或多个结果集进行连接,形成“并集”。子结果集所有的记录组合在一起形成新的结果集。

         1、限定条件

         要是用Union来连接结果集,有4个限定条件。

         (1)、子结果集要具有相同的结构。

         (2)、字结果集的列数必须相同。

         (3)、子结果集对应的数据类型必须可以兼容。

         (4)、每个子结果集不能包含order by和compute子句。

         2、语法形式

        select_statement union [all] select_statement

       all代表最终的结果集中将包含所有的行,而不能删除重复行。

        示例:

      SELECT Name FROM Person_1
      UNION
      SELECT Name FROM Person_2

       生成的结果为:

       

      注意到重复记录,孙权与周瑜仅仅显示了一个。下面来将UNION替换成UNION ALL看看是什么结果:

      SELECT Name FROM Person_1
      UNION ALL
      SELECT Name FROM Person_2

      注意到重复记录,孙权与周瑜出现了两次,这就是UNION ALL 与 UNION的不同之处。

      

       B、Except形成差集

       Except可以对两个或多个结果集进行连接,形成“差集”。返回左边结果集合中已经有的记录,而右边结果集中没有的记录。

       限定条件:

        1、子结果集要具有相同的结构。

        2、子结果集的列数必须相同。

        3、子结果集对应的数据类型必须可以兼容。

        4、每个子结果集不能包含order by 和 compute子句。

        语法形式:

        select_statement except select_statement 

        自动删除重复行。

        示例:

      SELECT Name FROM Person_1
      EXCEPT
      SELECT Name FROM Person_2

        结果:

        

        留意到表Person_2有的,孙权周瑜已被去除。

      C、InterSect形成交集

        InterSect可以对两个或多个结果集进行连接,形成“交集”。返回左边结果集和右边结果集中都有的记录。

      1、限定条件  

        要是用Except来连接结果集,有4个限定条件。

        (1)、子结果集要具有相同的结构。

        (2)、子结果集的列数必须相同。

        (3)、子结果集对应的数据类型必须可以兼容。

        (4)、每个子结果集不能包含order by或compute子句。

      2、语法形式

      select_statement intersect select_statement        

      示例:

      SELECT Name FROM Person_1
      INTERSECT
      SELECT Name FROM Person_2

       返回的结果如下:

       

       留意到只取两张表都有的记录(周瑜,孙权),这就是所谓的交集。

      D、结果集的排序

      SELECT Name FROM Person_1
      INTERSECT
      SELECT Name FROM Person_2
      ORDER BY Name DESC    --此处的字段名相同了,如果不同,请切记排序列名,只能够是第一个表的列名

      这里只有两点要注意

      1.ORDER BY是对整个运算后的结果排序,并不是对单个数据集。

      2.ORDER BY后面排序的字段名称是第一个数据集的字段名或者别名。

  • 相关阅读:
    Verilog非阻塞赋值的仿真/综合问题 (Nonblocking Assignments in Verilog Synthesis)上
    异步FIFO结构及FPGA设计 跨时钟域设计
    FPGA管脚分配需要考虑的因素
    An Introduction to Delta Sigma Converters (DeltaSigma转换器 上篇)
    An Introduction to Delta Sigma Converters (DeltaSigma转换器 下篇)
    中国通信简史 (下)
    谈谈德国大学的电子专业
    中国通信简史 (上)
    Verilog学习笔记
    Verilog非阻塞赋值的仿真/综合问题(Nonblocking Assignments in Verilog Synthesis) 下
  • 原文地址:https://www.cnblogs.com/kissdodog/p/3152743.html
Copyright © 2011-2022 走看看