UNION(并集)集合运算

在集合论中,两个集合(记为集合A和B)的并集是一个包含集合A和B中所有元素的集合。换句话说,如果一个元素属于任何一个输入集合,那么它也属于结果集。

在T-SQL中,UNION
集合运算可以将两个输入查询的结果集组合成一个结果集。如果一个行在任何一个输入集合中出现,它也会在UNION运算的结果中出现。T-SQL
支持在UNION集合运算中使用UNION ALL 和UNION(隐含DISTINCT,DISTINCT不能显示指定)选项。

UNION ALL 集合运算

对于作为运算的输入查询而生成的多集,UNION ALL
集合运算返回在输入的多集中出现的所有行,它实际上不会对行进行比较,也不会删除重复行。假设查询Query1返回m行,查询Query2返回n行,则Query1
UNION ALL Query2 返回(m+n)行。

SELECT c FROM a

UNION ALL

SELECT c FROm b

注意:因为UNION ALL 不会删除重复行,所以它的结果是多集,而不是真正的集合。相同的行在结果中可能出现多次。

UNION DISTINCT 集合运算

从逻辑处理过程来看,UNION(隐含
DISTINCT)集合运算通过删除重复记录,可以把两个输入的多集转变成一个集合,这个返回的集合中包含两个输入集中的所有行。

注意:如果两个输入集中包含相同的行,则该行在结果中只出现一次;换句话说,运算结果是一个真正的集合,而不是多集。

从物理处理过程来看,SQL Server
不一定必须先删除输入多集中的重复行,再进行集合运算。相反,它可以先把两个多集组合在一起,然后再删除重复行。

那么,什么时候应该使用 UNION ALL ,什么时候应该使用 UNION呢?如果在集合运算合并两个输入集以后可能存在重复行,但要返回互不相同的行,则使用
UNION 。如果在合并两个输入集以后不可能会出现重复行,那么这时UNION和UNION ALL
在逻辑上是等价的。不过,对于这种情况,建议使用UNION ALL,这样可避免SQL Server 为检查重复行而带来的额外开销。

UNION(并集)集合运算,布布扣,bubuko.com

时间: 2024-11-03 21:27:49

UNION(并集)集合运算的相关文章

SQL之集合运算

UNION(并集)集合运算 1.UNION ALL集合运算 该集合运算返回在输入的多集中出现的所有行,它实际上不会对行进行比较,也不会删除重复行.假设查询Query1返回m行,查询Query2返回n行,则该集合运算后返回(m+n)行 1 SELECT country, region, city FROM HR.Employees 2 UNION ALL 3 SELECT country, region, city FROM Sales.Customers; 2.UNION DISTINCT集合运

详解SQL语句的集合运算

以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 概述 本篇主要是对集合运算中并集.交集.差集运算基础的总结. 集合运算包含四种: 1.并集运算(两种) 2.交集运算 3.差集运算 下面是集合运算的思维导图: 为什么使用集合运算 1.在集合运算中比联接查询和EXISTS/NOT EXISTS更方便. 在阅读下面的章节时,我们可以先把环境准备好,以下的SQL脚本可以帮助大家创建数据库,创建表,插入数据. 一.集合运算 1.集合运算 (1)对输入的两个集合或

笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-06 集合运算

T-SQL支持3种集合运算:并集(UNION).交集(INTERSECT)和差集(EXCEPT).集合运算涉及的两个查询不能包含ORDER BY子句. UNION ALL集合运算 UNION ALL不会对行进行比较,也不会删除重复行.假设查询Query1返回m行,查询Query2返回n行,则Query1 UNION ALL Query2返回(m+n)行. SELECT country, region, city FROM HR.Employees UNION ALL SELECT country

详解SQL集合运算

以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础]04.表表达式-上篇 [T-SQL基础]04.表表达式-下篇 [T-SQL基础]05.集合运算 [T-SQL基础]06.透视.逆透视.分组集 [T-SQL基础]07.数据修改 [T-SQL基础]08.事务和并发 [

第七章 集合运算 7-1 表的加减法

一.什么是集合运算 集合:集合在数学领域表示"各种各样"事物的总和.在数据库领域表示记录的集合. 集合运算:集合运算就是对满足同一规则的记录进行的加减等四则运算. 二.表的加法--UNION 加法运算UNION并集 UNION等集合运算通常是除去重复记录的. 三.集合运算的注意事项 注意1??作为运算对象的记录的列数必须相同. 注意2??作为运算对象的记录中列的类型必须一致.类型转换函数CAST() 注意3??可以使用任何SELECT语句,但是ORDER BY子句只能在最后使用一次.

SQL集合运算 差集 并集 交

SQL-3标准中提供了三种对检索结果进行集合运算的命令:并集UNION:交集INTERSECT:差集EXCEPT(在Oracle中叫做 MINUS).在有些数据库中对此的支持不够充分,如MySql中只有UNION,没有其他两种.实际上这些运算都可以通过普通的SQL来实现,虽然有时有些繁琐. 假设有两个表(或视图)s,t,s中有两个字段sa,sb:t中有两个字段ta,tb: 差集EXCEPT: PLAIN TEXT SQL: SELECTsaFROMs EXCEPT SELECTtaFROMt;

UNION并集运算

在集合论中,两个集合(集合A和集合B)的并集是一个包含集合A和B中所有元素的集合.换句话说,如果一个元素属于任何一个输入集合,那么它也属于结果集.如图所示. UNION集合运算分为UNION ALL和UNION DISTINCT两种情形,它们的区别是UNION ALL会保留重复行,而UNION DISTINCT会删除重复行.下面用例子来说明. UNION ALL UNION ALL合并两个集合,并保留重复行.例如. SQL查询代码: USE TSQLFundamentals2008; GO --

SQL Fundamentals || 多表查询(内连接,外连接(LEFT|RIGHT|FULL OUTER JOIN),自身关联,ON,USING,集合运算UNION)

一.多表查询基本语法 在进行多表连接查询的时候,由于数据库内部的处理机制,会产生一些“无用”的数据,而这些数据就称为笛卡尔积. 多表查询时可以利用等值关联字段消除笛卡尔积 多表查询之中,每当增加一个关联表都需要设置消除笛卡尔积的条件 分析过程很重要: 确定所需要的数据表 确定已知的关联字段: 按照SQL语句的执行步骤编写:FROM,WHERE,SELECT,ORDER BY (由于SELECT是在WHERE子句之后执行,所以SELECT子句所定义的别名WHERE不可以直接使用) (由于SELEC

两个DataTable之间的差集、交集、并集集合(Except、Intersect、Union)

//获取第一个数据源DataTable DataTable dt1 = DBHelper.GetDataTable("select top 10  ksdid,user_id,user_pwd from ksd_user_info"); IEnumerable<DataRow> query1 = dt1.AsEnumerable().Where(t => t.Field<string>("user_id").StartsWith(&qu