设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1590|回复: 0

SQLServer之集合

[复制链接]

17

主题

222

金钱

324

积分

入门用户

发表于 2019-4-10 15:03:36 | 显示全部楼层 |阅读模式

集合的定义
集合是由一个或多个元素构成的整体,在SQLServer中的表就代表着事实集合,而其中的查询就是在集合的基础上生成的结果集。SQL Server的集合包括交集(INTERSECT)、并集(UNION)、差集(EXCEPT)。

交集(INTERSECT)
可以对两个多个结果集进行连接,形成"交集"。返回左边结果集和右边结果集中都有的记录,且结果不重复(这也是集合的主要特性)

交集限制条件
子结果集要有相同的结构。
子结果集的列数必须相同。
子结果集对应的数据类型必须可以兼容。
每个子结果集不能包含order by和compute子句。

交集语法
  1. select * from 结果集
  2. intersect
  3. select * from 结果集
复制代码


交集示例
  1. select name from [testss].[dbo].[schema_table1]
  2. intersect
  3. select name from [testss].[dbo].[test1]
复制代码



并集(UNION and UNION ALL)
可以对两个或多个结果集进行连接,形成并集。子结果集所有的记录组合在一起形成新的结果集,其中使用UNION可以得到不重复(去重复)的结果集,使用UNION ALL会得到重复(不去重的结果集)。

并集限制条件
子结果集要具有相同的结构。
子结果集的列数必须相同。
子结果集对应的数据类型必须可以兼容。
每个子结果集不能包含order by 和compute子句

并集(UNION)语法
  1. select * from 结果集
  2. union
  3. select * from 结果集
复制代码


并集(UNION)示例
  1. select name from [testss].[dbo].[schema_table1]
  2. union
  3. select name from [testss].[dbo].[test1] 
复制代码


并集(UNION ALL)语法
  1. select * from 结果集
  2. union all
  3. select * from 结果集
复制代码


并集(UNION ALL)示例
  1. select name from [testss].[dbo].[schema_table1]
  2. union all
  3. select name from [testss].[dbo].[test1] 
复制代码


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

差集限制条件
子结果集要具有相同的结构。
子结果集的列数必须相同。
子结果集对应的数据类型必须可以兼容。
每个子结果集不能包含Order by和compute子句。

差集(EXCEPT)语法
  1. select * from 结果集
  2. except
  3. select * from 结果集
复制代码


差集(EXCEPT)示例
  1. select name from [testss].[dbo].[schema_table1]
  2. except
  3. select name from [testss].[dbo].[test1] 
复制代码


提示
集合是我们数据处理过程中的理论基础,可以通过集合的观点去很好的理解不同的查询语句。每一个物理表就是一个集合,当我们要对表进行操作的时候,将它们看成对集合的操作就很好理解了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表