• [SQL 高级查询运算符的用法 UNION (ALL),EXCEPT(ALL),INTERSECT(ALL) ]


     

     

    今天看到 三个查询运算符,给大家分享分享

    为此我建立了两张表分别为 Articles 和  newArticles

    我建立的时候,只建立了一张表 Articles   ,表 newArticles 是根据SQL语句

    SELECT * INTO newArticles FROM Articleszhij

    直接创建的

    显示数据为


    UNION (ALL)

    UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中
    任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION AL
    L),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自
    TABLE2。

    SELECT Articles_Title  FROM dbo.newArticles
     UNION   
    SELECT Articles_Title FROM Articles 

    显示效果 

    SELECT Articles_Title  FROM dbo.newArticles
     UNION ALL
    SELECT Articles_Title FROM Articles 

    显示效果


     EXCEPT(ALL)

    EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重
    复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消
    除重复行。

    SELECT Articles_Title FROM Articles 
    EXCEPT 
    SELECT Articles_Title  FROM dbo.newArticles

    显示效果

    SELECT Articles_Title  FROM dbo.newArticles
    EXCEPT 
    SELECT Articles_Title FROM Articles 

    显示效果

    提示:数据的不同和表查询的顺序有关;  因版本问题, EXCEPT(ALL) 无法查询;


     INTERSECTALL(ALL)  

    INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复
    行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),
    不消除重复行。

    SELECT Articles_Title FROM Articles  
    INTERSECT 
    SELECT Articles_Title  FROM dbo.newArticles

    显示效果

    提示:因版本问题, INTERSECTALL(ALL)  无法查询;


     总结: UNION 返回两个结果集的并集 重复行合并,UNION ALL, 返回两个结果集的并集,重复行 不合并

       EXCEPT 返回两个结果集的差(即从左查询中返回右查询没有找到的所有非重复值)

             INTERSECT 返回 两个结果集的交集(即两个查询都返回的所有非重复值)

    限制条件:  

    (1)所有查询中的列数和列的顺序必须相同
    (2)比较的两个查询结果集中的列数据类型可以不同但必须兼容。
    (3)比较的两个查询结果集中不能包含不可比较的数据类型(xml、text、ntext、image 或非二进制 CLR 用户定义类型)的列
    (4)返回的结果集的列名与操作数左侧的查询返回的列名相同。ORDER BY 子句中的列名或别名必须引用左侧查询返回的列名。
    (5)不能与 COMPUTE 和 COMPUTE BY 子句一起使用。
    (6)通过比较行来确定非重复值时,两个 NULL 值被视为相等。(EXCEPT 或 INTERSECT 返回的结果集中的任何列的为空性与操作数左侧的查询返回的对应列的为空性相同。)
  • 相关阅读:
    Python 中的Lock与RLock
    Python 自定义三方库
    Python 通过RSA实现license验证设备指纹与有效期
    Python 通过wmi获取Window服务器硬件信息
    Java List对象集合按对象属性分组、分组汇总、过滤等操作示例
    BrokenPipeError: [Errno 32] Broken pipe
    Python 通过dmidecode获取Linux服务器硬件信息
    Linux 解决E: Sub-process /usr/bin/dpkg returned an error code (1)错误
    Ubuntu 增加新用户并赋予root权限及免密的方法
    关于smali插桩
  • 原文地址:https://www.cnblogs.com/shaopang/p/6913372.html
Copyright © 2020-2023  润新知