`
shuzheng5201314
  • 浏览: 203387 次
  • 来自: 北京
社区版块
存档分类
最新评论

SQL 操作结果集 -并集、差集、交集、结果集排序

 
阅读更多

为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物。

  表:Person_1魏国人物

   

  表:Person_2蜀国人物

  

  A、Union形成并集

    Union可以对两个或多个结果集进行连接,形成“并集”。子结果集所有的记录组合在一起形成新的结果集。

     1、限定条件

     要是用Union来连接结果集,有4个限定条件。

     (1)、子结果集要具有相同的结构。

     (2)、字结果集的列数必须相同。

     (3)、子结果集对应的数据类型必须可以兼容。

     (4)、每个子结果集不能包含order by和compute子句。

     2、语法形式

    select_statement union [all] select_statement

   all代表最终的结果集中将包含所有的行,而不能删除重复行。

    示例:

  SELECT Name FROM Person_1
  UNION
  SELECT Name FROM Person_2

   生成的结果为:

   

  注意到重复记录,孙权与周瑜仅仅显示了一个。下面来将UNION替换成UNION ALL看看是什么结果:

  SELECT Name FROM Person_1
  UNION ALL
  SELECT Name FROM Person_2

  注意到重复记录,孙权与周瑜出现了两次,这就是UNION ALL 与 UNION的不同之处。

  

   B、Except形成差集

   Except可以对两个或多个结果集进行连接,形成“差集”。返回左边结果集合中已经有的记录,而右边结果集中没有的记录。

   限定条件:

    1、子结果集要具有相同的结构。

    2、子结果集的列数必须相同。

    3、子结果集对应的数据类型必须可以兼容。

    4、每个子结果集不能包含order by 和 compute子句。

    语法形式:

    select_statement except select_statement 

    自动删除重复行。

    示例:

  SELECT Name FROM Person_1
  EXCEPT
  SELECT Name FROM Person_2

    结果:

    

    留意到表Person_2有的,孙权周瑜已被去除。

  C、InterSect形成交集

    InterSect可以对两个或多个结果集进行连接,形成“交集”。返回左边结果集和右边结果集中都有的记录。

  1、限定条件  

    要是用Except来连接结果集,有4个限定条件。

    (1)、子结果集要具有相同的结构。

    (2)、子结果集的列数必须相同。

    (3)、子结果集对应的数据类型必须可以兼容。

    (4)、每个子结果集不能包含order by或compute子句。

  2、语法形式

  select_statement intersect select_statement        

  示例:

  SELECT Name FROM Person_1
  INTERSECT
  SELECT Name FROM Person_2

   返回的结果如下:

   

   留意到只取两张表都有的记录(周瑜,孙权),这就是所谓的交集。

  D、结果集的排序

  SELECT Name FROM Person_1
  INTERSECT
  SELECT Name FROM Person_2
  ORDER BY Name DESC    --此处的字段名相同了,如果不同,请切记排序列名,只能够是第一个表的列名

  这里只有两点要注意

  1.ORDER BY是对整个运算后的结果排序,并不是对单个数据集。

  2.ORDER BY后面排序的字段名称是第一个数据集的字段名或者别名。

 

转自:http://www.cnblogs.com/kissdodog/archive/2013/06/24/3152743.html

分享到:
评论

相关推荐

    C# 两个datatable中的数据快速比较返回交集 并集或差集

    当我们处理多个DataTable时,可能需要比较它们之间的数据,找出交集、并集或差集。这在数据分析、数据清洗或者数据库同步等场景中非常常见。本教程将通过一个完整的源码示例,帮助初学者理解如何在C#中快速地完成这...

    LINQ操作数组代码(交集,并集,差集,最值,平均,去重复)

    在这个示例中,我们将深入探讨如何使用LINQ操作数组,主要包括交集、并集、差集、最值以及去重复等操作。 首先,我们来看交集(Intersect)操作。在给定的代码中,`fuck`变量存储了数组`a`和`b`的交集。`Intersect`...

    SQLServer2008T-SQL查询基础中文版

    7. **集合操作**:UNION、UNION ALL、INTERSECT和EXCEPT用于组合多个查询的结果,分别表示并集、并集(包含重复行)、交集和差集。 8. **函数和表达式**:T-SQL提供了大量内置函数,如字符串函数、日期/时间函数、...

    Inside-SQL2005-T-SQL.rar_inside

    2. **高级查询**:可能详细讲解了联接(JOIN)操作,如内连接、外连接和交叉连接,以及子查询和集合操作,如并集(UNION)、交集(INTERSECT)和差集(EXCEPT)。 3. **流程控制**:介绍IF-ELSE、WHILE、BEGIN-END...

    sql server 交集,差集的用法详解

    总结来说,SQL Server的交集、差集和并集运算提供了灵活的数据处理方式,使我们能够从多个数据源中精确地获取所需信息。熟练掌握这些运算,对于优化查询性能和提升数据分析能力至关重要。在实际工作中,根据需求选择...

    SQL操作全集!!!!!

    - **并集操作**:`UNION` 可以将两个或多个查询结果合并为一个结果集,去除重复记录;`UNION ALL`则保留所有记录,包括重复的。 - **差集操作**:`EXCEPT` 返回第一个查询结果中存在但第二个查询结果中不存在的行;`...

    SQL操作全集(非常适合初学者)

    ### SQL操作全集详解 #### 一、数据库操作(DDL:Data Definition Language) **1. 创建数据库** - **语法**: `CREATE DATABASE database-name;` - **说明**: 使用此命令可以创建一个新的数据库。 - **示例**: ...

    sql server 2005 技术内幕t-sql查询源码

    3. **集合操作**:可能涉及到并集(UNION)、交集(INTERSECT)和差集(EXCEPT)等集合运算符的使用,以及如何通过这些运算符来合并或比较多个查询结果。 4. **T-SQL流程控制**:讲述如何使用IF...ELSE、WHILE、...

    数据库系统原理与设计(万常选版)总复习CH3 SQL语言_2-复习.ppt

    7. **集合运算**:SQL支持并集(UNION)、交集(INTERSECT)和差集(EXCEPT)等集合运算,用于组合不同查询的结果。 这些知识点构成了SQL语言的基础,是理解和操作数据库系统的关键。掌握这些概念和操作,能够高效...

    Oracle 10g SQL操作和PLSQL所有命令集合

    集合操作包括并集(UNION)、交集(INTERSECT)和差集(MINUS)。 5. **连接查询**:用于合并多个表的数据,依据表之间的关联关系,如内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接...

    SQL语句的并集UNION 交集JOIN(内连接,外连接)等介绍

    主要介绍了SQL语句的并集UNION,交集JOIN(内连接,外连接),交叉连接(CROSS JOIN笛卡尔积),差集(NOT IN) ,需要的朋友可以参考下

    电子书 SQL语法大全中文版.doc

    合并多个查询结果,分别实现结果集的并集、交集和差集。 12. 函数与表达式: 包括字符串函数、日期时间函数、数学函数、系统信息函数等,用于处理和转换数据。 通过阅读《SQL语法大全中文版》,读者将能够掌握...

    Oracle_Database_11g_SQL_-_Master_SQL_and_PLSQL_in_the_Oracle_Database

    此外,新加入了集合操作,如并集、差集和交集,便于对多个结果集进行操作。 3. **PL/SQL增强**:PL/SQL支持了匿名块、存储过程、函数、触发器等,11g版本中增加了异常处理的灵活性,以及对游标的改进,使得处理大量...

    Microsoft+SQL+Server+2008技术内幕:T-SQL查询_源代码及附录A

    集合操作包括并集(UNION)、交集(INTERSECT)和差集(EXCEPT),以及使用IN和NOT IN子句进行成员比较。 “查询优化”是数据库性能的关键。SQL Server的查询优化器会分析查询的不同执行路径,选择最有效的一种。...

    oracle常用查询语句示例

    此外,Oracle还支持集合操作,如并集(UNION),交集(INTERSECT)和差集(MINUS): ```sql -- 并集:返回两个查询结果的唯一行 SELECT column FROM table1 UNION SELECT column FROM table2; -- 交集:返回两个...

    数据库——的集合运算

    集合运算是数据库查询中的一种重要操作,它允许将两个或多个SQL查询的结果集进行并集、交集和差集的运算。在数据库的查询语言中,如SQL(Structured Query Language),集合运算符用于对查询结果集进行组合或比较,...

    Microsoft SQL SERVER 2008技术内幕 T-SQL查询

    第二章“集合论和谓词逻辑”是理解SQL查询的基础,它探讨了集合的概念,如交集、并集、差集和笛卡尔积,这些都是SQL查询中的基本运算。同时,谓词逻辑是表达查询条件的关键,书中会介绍如何使用WHERE子句以及比较...

    Microsoft SQL Server 2005技术内幕:T-SQL查询

    再者,书中会涉及集合操作,如并集(UNION)、交集(INTERSECT)和差集(EXCEPT),以及集合函数,如COUNT、SUM、AVG、MIN和MAX,这些函数用于统计和计算数据。 除了基本查询,书中还将介绍如何使用T-SQL进行数据...

Global site tag (gtag.js) - Google Analytics