zoukankan      html  css  js  c++  java
  • SQL Server Union联合查询

    有的时候我们需要组合两个完全不同的查询结果集,而这两个查询结果之间没有必然的联系,只是我们需要将他们显示在一个结果集中而已。在SQL中可以使用UNION运算符来 将两个或者多个查询结果集联合为一个结果集中。

    联合结果集不必受被联合的多个结果集之间的关系限制,不过使用UNION仍然有两个基本的原则需要遵守:
    1.每个结果集必须有相同的列数;
    2.每个结果集的列必须类型相容,即结果集的每个对应列的数据类型必须相同或者能够转换为同一种数据类型。

    联合查询Union又有Union和Union All两种方式,下面分别说下他们的用法以及区别:
    示例表数据如下:
    在这里插入图片描述
    这时两张表的数据,其中Name,Age,Address三行的数据类型相同,红色框内两表数据完全相同。
    1.使用Union联合查询,执行SQL语句:

    SELECT 
          TeacherName
          ,Age
          ,Address
      FROM [BlogDemo2].[dbo].[Teacher]
      Union  --联合查询
      SELECT 
           StudentName
          ,Age
          ,Address
      FROM [BlogDemo2].[dbo].[Student]
    

    查询结果集如下:
    在这里插入图片描述
    可以看到两表重复的内容被去重复了,说明union联合查询有去重复的功能。

    2.使用Union All联合查询,执行SQL语句:

      SELECT 
          TeacherName
          ,Age
          ,Address
      FROM [BlogDemo2].[dbo].[Teacher]
      Union All
      SELECT 
          StudentName
          ,Age
          ,Address
      FROM [BlogDemo2].[dbo].[Student]
    

    查询结果集如下:
    在这里插入图片描述
    可以看到两张表所有数据都存在结果集中,包括两张表重复的数据也存在,说明union all联合查询是联合表的所有内容。

    3.union和union all区别以及效率
    union有去重复的功能,union all没有去重复功能,所以union的效率会低点,如果查询的结果集没有要求去重或者联合表中不存在重复数据 建议使用union all操作。

  • 相关阅读:
    “大型售票系统”和“真正的电商系统”在“库存”巨大的差异计算
    c#有关udp可靠传输(包传输数据包) 升级
    CreateCompatibleDC工作原理
    Android 内存管理 &Memory Leak & OOM 分析
    ubuntu文本界面乱码的中国解决方案
    hdu 4972 A simple dynamic programming problem(高效)
    java定义和实现接口
    HTTP 404
    pcre函数具体解释
    Android项目开发五-《星星生活志》1.使用MediaRecorder录制音频
  • 原文地址:https://www.cnblogs.com/wangqilong/p/10088343.html
Copyright © 2011-2022 走看看