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(并集)集合运算的更多相关文章
- 集合运算—union(并集)、intersect(交集)和except(差集)
一.集合运算的基本格式是: 集合查询1 <集合运算> 集合查询2 [order by ...] 二.集合运算符是对两个集合操作的,两个集合必须具有相同的列数,列具有相同的数据类型(至少能隐 ...
- 详解SQL集合运算
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 ...
- UNION并集运算
在集合论中,两个集合(集合A和集合B)的并集是一个包含集合A和B中所有元素的集合.换句话说,如果一个元素属于任何一个输入集合,那么它也属于结果集.如图所示.
- SQL集合运算 差集 并集 交
SQL-3标准中提供了三种对检索结果进行集合运算的命令:并集UNION:交集INTERSECT:差集EXCEPT(在Oracle中叫做 MINUS).在有些数据库中对此的支持不够充分,如MySql中只 ...
- SQL Fundamentals || 多表查询(内连接,外连接(LEFT|RIGHT|FULL OUTER JOIN),自身关联,ON,USING,集合运算UNION)
SQL Fundamentals || Oracle SQL语言 一.多表查询基本语法 在进行多表连接查询的时候,由于数据库内部的处理机制,会产生一些“无用”的数据,而这些数据就称为笛卡尔积. 多表查 ...
- 集合运算(UNION)
表的加法 集合运算:就是满足统一规则的记录进行的加减等四则运算. 通过集合运算可以得到两张表中记录的集合或者公共记录的集合,又或者其中某张表中记录的集合. 集合运算符:用来进行集合的运算符. UNIO ...
- 【oracle】-集合运算:UNION,UNION ALL...
在Oracle中提供了三种类型的集合操作: 并(UNION).交(INTERSECT).差(MINUS) UNION:求并,重复记录只显示一次. UNION ALL:求并集,显示所有记录信息. INT ...
- SQL Server中的集合运算: UNION, EXCEPT和INTERSECT
SQL Server中的集合运算包括UNION(合并),EXCEPT(差集)和INTERSECT(相交)三种. 集合运算的基本使用 1.UNION(合并两个查询结果集,隐式DINSTINCT,删除重复 ...
- Oracle学习之集合运算
一.集合运算操作符 UNION:(并集)返回两个集合去掉重复值的所有的记录 UNION ALL:(并集)返回两个集合去掉重复值的所有的记录 INTERSECT:(交集)返回两个集合的所有记录,重复 ...
随机推荐
- 异常详细信息: System.ComponentModel.Win32Exception: 信号灯超时时间已到
- zabbix基础安装
环境依赖:LNMP或者LAMP 简介参考:http://blog.51cto.com/zhang789/1868880 一.准备 我安装的环境及其版本如下: 系统版本 CentOS Linux rel ...
- fabric的安装
https://blog.csdn.net/lepton126/article/details/79148027
- 【计算机网络】2.6 P2P应用
第二章第六节 P2P应用 在本节内容开始前,我们要先来对P2P架构有一个宏观的认知: P2P:(Peer to Peer 对等结构) 以对等方式进行通信,并不区分客户端和服务端,而是平等关系进行通 ...
- Unexpected token d in JSON at position 669 while parsing near '...ct-mode":"^6.0.2"}
问题 在安装 babel 的时候,遇到问题 Unexpected token d in JSON at position 669 while parsing near '...ct-mode" ...
- js 鼠标拖拽元素移动
<!DOCTYPE html><html> <head> <title> </title> <style media="sc ...
- RN code push自定义弹框
最近在弄react native的code push热更新问题.开始是用的后台默默更新配置.由于微软服务器速度问题,经常遇到用户一直在下载中问题.而用户也不知道代码需要更新才能使用新功能,影响了正常业 ...
- ie兼容的解决办法,6,7、8、9、10
在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 <!Doctype html> ...
- 动态规划----最长公共子序列(C++实现)
最长公共子序列 题目描述:给定两个字符串s1 s2 … sn和t1 t2 … tm .求出这两个字符串的最长公共子序列的长度.字符串s1 s2 … sn的子序列指可以表示为 … { i1 < i ...
- HDU - 4514 湫湫系列故事——设计风景线(并查集判环)
题目: 随着杭州西湖的知名度的进一步提升,园林规划专家湫湫希望设计出一条新的经典观光线路,根据老板马小腾的指示,新的风景线最好能建成环形,如果没有条件建成环形,那就建的越长越好. 现在已经勘探确定了n ...