zoukankan      html  css  js  c++  java
  • INTERSECT(交集)集合运算

    在集合论中,两个集合(记为集合A和B)的交集是由既属于A,也属于B的所有元素组成的集合。

    在T-SQL 中,INTERSECT 集合运算对两个输入查询的结果集取其交集,只返回在两个查询结果集中都出现的行。

    INTERSECT DISTINCT集合运算

    INTERSECT 集合运算在逻辑上首先删除两个输入多集中的重复行(把多集变为集合),然后返回只在两个集合中都出现的行。换句话说,如果一个行在两个输入多集中都至少出现一次,那么交集返回的结果中将包含这一行。

    SELECT c FROM a

    INTERSECT

    SELECT d FROM b

    INTERSECT ALL 集合运算

    ANSI SQL 支持带有ALL选项的INTERSECT集合运算,但SQL Server 2008现在还没有实现这种运算。

    回忆一下 UNION ALL 集合运算中 ALL 关键字的含义:要求返回所有重复行。类似地,INTERSECT ALL 集合运算中的 ALL 关键字也意味着不会删除重复行。但INTERSECT ALL 与UNION ALL有所不同:前者不会返回所有重复行,而只返回重复行数目较少的那个多集的所有重复行。换句话说,INTERSECT ALL 运算不仅关心一个行是否在两个多集同时存在,还关心它在每个多集中出现的次数。就好像这个集合运算会查找每行的每次匹配一样。

    SELECT 

      ROW_NUMBER() OVER(PARTITION BY country,region,city ORDER BY(SELECT 0)) AS rownum,

      country,region,city

    FROM dbo.Employees

    INTERSECT

    SELECT

      ROW_NUMBER() OVER(PARTITION BY country,region,city ORDER BY (SELECT 0)),

      country,region,city

    FROM dbo.Customers;

  • 相关阅读:
    Day3-python基础3
    批量分发
    Day2-python基础2
    数据类型总结,and字符编码和文件处理
    集合与字符编码
    列表等及其部分讲解
    赋值符号和循环略解
    Python中常量,和基本数据类型,输入输出的方法,基本运算符。
    Python解释器了解,及部分变量
    计算机硬件,操作系统,编程语言
  • 原文地址:https://www.cnblogs.com/zhangdx/p/3731260.html
Copyright © 2011-2022 走看看