• sqlserver 理解数据集


    数据集分四类:

    1.A∩B,既是所求数据集既在A中,又在B中

    2.A∪B,既所求数据在数据集A中,或在数据集B中

    3.A-B,既所求数据在数据集A中,不在数据集B中

    4.B-A,既所求数据在数据集B中,不在数据集A中

    和数学一样

    数据集:参与数据集运算的两个数据集可以来自任何返回数据集的表达式:
    一张表,一张表的子集,多张表,临时表变量,虚拟列,甚至一个值
    并不是所有的数据集都可以直接做运算
    就像 1个人 + 1只老虎 不能等于2 一样,所以数据集运算需满足三个条件:

    1 两个数据集之间必须具有相同数量的列
    2 两个数据集之间列出现的次序必须一致
    3 两个数据集之间每一个对应的列的数据类型必须匹配

    数据集运算:

    1 AUB:使用Union实现
    当两个数据集中相同的行时,保留一个

    使用 Union all 实现
    与Union不同的是:当遇到两个数据集中重复的行的时候,全部保留,只做简单的并的操作

    2 AnB 使用INTERSECT实现

    例如:

    SELECT * FROM A1
    INTERSECT
    SELECT * FROM A2

    3 A-B 使用Except实现

     例如:

    SELECT * FROM A1
    EXCEPT
    SELECT * FROM A2

    3 数据列的别名和排序:

    如果没有为数据列指定别名,则数据列的名称按照出现在第一个集合对应的列名算

    如果想自定义列名,则需要为数据集运算中出现的第一位的数据集指定别名

    SELECT name1 AS a  ,age FROM A1
    EXCEPT
    SELECT name2,age  FROM A2

    4 对运算后的结果集进行排序

    只需要在运算的最后加上order by子句,但注意:
    1 order by是对整个运算后的结果排序,并不是对单个数据集
    2 order by 后面排序的字段名称是第一个数据集的字段名或者别名

  • 相关阅读:
    密文搜索
    poj 1182 食物链
    1147. Heaps (30)
    1146. Topological Order (25)
    1145. Hashing
    1142. Maximal Clique (25)
    fzu 2112 tickets
    51nod 1554 欧姆诺姆和项链
    codeforces 963B Destruction of a Tree
    hdu 3294 Girls' research
  • 原文地址:https://www.cnblogs.com/niuzaihenmang/p/5708156.html
Copyright © 2020-2023  润新知