• [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 返回的结果集中的任何列的为空性与操作数左侧的查询返回的对应列的为空性相同。)
  • 相关阅读:
    SpringBoot自定义错误页面,SpringBoot 404、500错误提示页面
    SpringBoot切换Tomcat容器,SpringBoot使用Jetty容器
    SpringBoot 国际化配置,SpringBoot Locale 国际化
    SpringBoot Logback配置,SpringBoot日志配置
    SpringBoot thymeleaf使用方法,thymeleaf模板迭代
    SpringBoot thymeleaf模板页面没提示,SpringBoot thymeleaf模板插件安装
    JSP判断闰年
    JSP求和计算
    JSP指令
    jsp新建项目
  • 原文地址:https://www.cnblogs.com/shaopang/p/6913372.html
Copyright © 2020-2023  润新知