原文转载自:http://www.cnblogs.com/kissdodog/archive/2013/06/24/3152743.html
以下为转载内容:
为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物。
表: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代表最终的结果集中将包含所有的行,而不能删除重复行。
3、示例:
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、限定条件:
(1)、子结果集要具有相同的结构。
(2)、子结果集的列数必须相同。
(3)、子结果集对应的数据类型必须可以兼容。
(4)、每个子结果集不能包含order by 和 compute子句。
2、语法形式:
select_statement except select_statement
自动删除重复行。
3、示例:
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后面排序的字段名称是第一个数据集的字段名或者别名。
相关推荐
当我们处理多个DataTable时,可能需要比较它们之间的数据,找出交集、并集或差集。这在数据分析、数据清洗或者数据库同步等场景中非常常见。本教程将通过一个完整的源码示例,帮助初学者理解如何在C#中快速地完成这...
在这个示例中,我们将深入探讨如何使用LINQ操作数组,主要包括交集、并集、差集、最值以及去重复等操作。 首先,我们来看交集(Intersect)操作。在给定的代码中,`fuck`变量存储了数组`a`和`b`的交集。`Intersect`...
- 集合的操作:并集、交集、差集 第八讲:字符串操作 - 字符串的索引、切片与连接 - 字符串方法:find、replace、split等 - 格式化字符串:%操作符与format()方法 第九讲:异常处理 - try/except语句 - finally块...
- **并集操作**:`UNION` 可以将两个或多个查询结果合并为一个结果集,去除重复记录;`UNION ALL`则保留所有记录,包括重复的。 - **差集操作**:`EXCEPT` 返回第一个查询结果中存在但第二个查询结果中不存在的行;`...
总结来说,SQL Server的交集、差集和并集运算提供了灵活的数据处理方式,使我们能够从多个数据源中精确地获取所需信息。熟练掌握这些运算,对于优化查询性能和提升数据分析能力至关重要。在实际工作中,根据需求选择...
- 正确答案为D:正确的SQL语句应该先执行UNION操作再对结果集进行筛选。 #### 题目14: 关系运算 - **知识点**:在数据库中,关系运算包括并集、差集、交集等。 - **并集**:两个集合的所有元素。 - **差集**:第...
7. **集合操作**:UNION、UNION ALL、INTERSECT和EXCEPT用于组合多个查询的结果,分别表示并集、并集(包含重复行)、交集和差集。 8. **函数和表达式**:T-SQL提供了大量内置函数,如字符串函数、日期/时间函数、...
最后,SQL支持集合操作,如并集(`UNION`)、交集(`INTERSECT`)和差集(`MINUS`),这些操作可以联合多个查询结果,提供更复杂的查询能力。 总结来说,本章内容涵盖了SQL语言的基础,包括创建和修改表,执行基础...
2. **高级查询**:可能详细讲解了联接(JOIN)操作,如内连接、外连接和交叉连接,以及子查询和集合操作,如并集(UNION)、交集(INTERSECT)和差集(EXCEPT)。 3. **流程控制**:介绍IF-ELSE、WHILE、BEGIN-END...
### SQL操作全集详解 #### 一、数据库操作(DDL:Data Definition Language) **1. 创建数据库** - **语法**: `CREATE DATABASE database-name;` - **说明**: 使用此命令可以创建一个新的数据库。 - **示例**: ...
- **知识点**: 数据库查询中经常需要用到集合运算,如并集(Union)、交集(Intersection)、差集(Difference)等。 - **问题解析**: 寻找选修了计算机基础但没有选修数据库Access的学生,即需要找到两个集合的差集...
集合操作包括并集(UNION)、交集(INTERSECT)和差集(EXCEPT),以及使用IN和NOT IN子句进行成员比较。 “查询优化”是数据库性能的关键。SQL Server的查询优化器会分析查询的不同执行路径,选择最有效的一种。...
再者,书中会涉及集合操作,如并集(UNION)、交集(INTERSECT)和差集(EXCEPT),以及集合函数,如COUNT、SUM、AVG、MIN和MAX,这些函数用于统计和计算数据。 除了基本查询,书中还将介绍如何使用T-SQL进行数据...
《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》适合须要学习T-SQL的各级程序员和数据库专业人员,是他们快速掌握T-SQL的必备参考图书。 致谢 引言 第1章 T-SQL查询和编程基础 1.1 理论背景 1.2 ...
6. **数据结构深入**:对列表、元组、字典、集合的高级操作,如列表推导式、字典的键值对操作、集合的交集、并集、差集等。 7. **字符串处理**:字符串的切片、查找、替换、格式化输出,正则表达式的使用,以及字符...
3. **集合操作**:可能涉及到并集(UNION)、交集(INTERSECT)和差集(EXCEPT)等集合运算符的使用,以及如何通过这些运算符来合并或比较多个查询结果。 4. **T-SQL流程控制**:讲述如何使用IF...ELSE、WHILE、...
《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》适合须要学习T-SQL的各级程序员和数据库专业人员,是他们快速掌握T-SQL的必备参考图书。 致谢 引言 第1章 T-SQL查询和编程基础 1.1 理论背景 1.2 SQL ...
- **并**、**差**、**交**:对两个关系执行并集、差集和交集运算 #### 三、数据库设计 **数据库设计过程** - **需求分析**:明确系统需要实现的功能,收集并分析用户需求。 - **概念设计**:建立数据模型,如...
集合操作包括并集(UNION)、交集(INTERSECT)和差集(MINUS)。 5. **连接查询**:用于合并多个表的数据,依据表之间的关联关系,如内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接...