SQLServer之集合

集合的定义

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

交集(INTERSECT)

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

交集限制条件

  • 子结果集要有相同的结构。
  • 子结果集的列数必须相同。
  • 子结果集对应的数据类型必须能够兼容。
  • 每一个子结果集不能包含order by和compute子句。

交集语法

select * from 结果集
intersect
select * from 结果集

交集示例

select name from [testss].[dbo].[schema_table1]
intersect
select name from [testss].[dbo].[test1]

 并集(UNION and UNION ALL)

能够对两个或多个结果集进行链接,造成并集。子结果集全部的记录组合在一块儿造成新的结果集,其中使用UNION能够获得不重复(去重复)的结果集,使用UNION ALL会获得重复(不去重的结果集)。blog

并集限制条件

  • 子结果集要具备相同的结构。
  • 子结果集的列数必须相同。
  • 子结果集对应的数据类型必须能够兼容。
  • 每一个子结果集不能包含order by 和compute子句

 并集(UNION)语法

select * from 结果集
union 
select * from 结果集

并集(UNION)示例

select name from [testss].[dbo].[schema_table1]
union
select name from [testss].[dbo].[test1] 

并集(UNION ALL)语法

select * from 结果集
union all
select * from 结果集

  

并集(UNION ALL)示例

select name from [testss].[dbo].[schema_table1]
union all
select name from [testss].[dbo].[test1] 

差集(EXCEPT)

能够对两个或多个结果集进行链接,造成差集。返回左边结果集中已经有的记录,而右边结果集中没有的记录。io

差集限制条件

  • 子结果集要具备相同的结构。
  • 子结果集的列数必须相同。
  • 子结果集对应的数据类型必须能够兼容。
  • 每一个子结果集不能包含Order by和compute子句。

差集(EXCEPT)语法

select * from 结果集
except
select * from 结果集

差集(EXCEPT)示例

select name from [testss].[dbo].[schema_table1]
except
select name from [testss].[dbo].[test1] 

提示

集合是咱们数据处理过程当中的理论基础,能够经过集合的观点去很好的理解不一样的查询语句。每个物理表就是一个集合,当咱们要对表进行操做的时候,将它们当作对集合的操做就很好理解了。table

相关文章
相关标签/搜索