zoukankan      html  css  js  c++  java
  • SQLSERVER数据集合的交、并、差集运算(intersect,union,except)

    SQLServer中通过intersect,union,except和三个关键字对应交、并、差三种集合运算。

    他们的对应关系可以参考下面图示

    新建两个表进行测试:
    test_a

    IDname
    1 曹操
    2 郭嘉
    3 孙权
    4 周瑜

    test_b

    IDname
    1 刘备
    2 关羽
    3 张飞
    4 孙权
    5 周瑜

    1.UNION形成并集

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

    1、限定条件

      要是用UNION来连接结果集,有4个限定条件。
      (1)、子结果集要具有相同的结构。
      (2)、字结果集的列数必须相同。
      (3)、子结果集对应的数据类型必须可以兼容。
      (4)、每个子结果集不能包含order by和compute子句。

    2、语法形式
    SELECT column_name(s) FROM table1
    UNION
    SELECT column_name(s) FROM table2;
    3.示例:

      无重复记录:
    Union形成并集-无重复记录
      

      有重复记录:
    Union形成并集-重复记录

    2.EXCEPT形成差集

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

    1、限定条件

      要是用EXCEPT来连接结果集,有4个限定条件。
      (1)、子结果集要具有相同的结构。
      (2)、字结果集的列数必须相同。
      (3)、子结果集对应的数据类型必须可以兼容。
      (4)、每个子结果集不能包含order by和compute子句。

    2、语法形式
    SELECT column_name(s) FROM table1
    EXCEPT
    SELECT column_name(s) FROM table2;

      博主的MySQL版本不支持EXCEPT,暂用NOT IN展示结果。
    NOT IN

    3.INNER JOIN形成交集

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

    1、限定条件

      要是用INNER JOIN来连接结果集,有4个限定条件。
      (1)、子结果集要具有相同的结构。
      (2)、字结果集的列数必须相同。
      (3)、子结果集对应的数据类型必须可以兼容。
      (4)、每个子结果集不能包含order by和compute子句。

    2、语法形式
    SELECT column_name(s) FROM table1
    INNER JOIN table2
    ON table2.column_name(s) = table1.column_name(s);

    SELECT column_name(s) FROM table1
    JOIN table2
    ON table2.column_name(s) = table1.column_name(s);

    INNER JOIN

  • 相关阅读:
    Flex 医疗行程图
    java cmd 命令
    面向对象的ExtJS场景开发
    spring Integration服务总线

    Vue.js 渲染函数, JSX(未掌握,未学完)
    JavaScript--Array; Array.prototype
    Vue.js 响应式原理
    Turbolinks
    LINQ 操作符
  • 原文地址:https://www.cnblogs.com/HuairongChen/p/13613996.html
Copyright © 2011-2022 走看看