SQLServer之集合

集合的定義

集合是由一個或多個元素構成的總體,在SQLServer中的表就表明着事實集合,而其中的查詢就是在集合的基礎上生成的結果集。SQL Server的集合包括交集(INTERSECT)、並集(UNION)、差集(EXCEPT)。code

交集(INTERSECT)

能夠對兩個多個結果集進行鏈接,造成"交集"。返回左邊結果集和右邊結果集中都有的記錄,且結果不重複(這也是集合的主要特性)io

交集限制條件

子結果集要有相同的結構。
子結果集的列數必須相同。
子結果集對應的數據類型必須能夠兼容。
每一個子結果集不能包含order by和compute子句。table

交集語法

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會獲得重複(不去重的結果集)。test

並集限制條件

子結果集要具備相同的結構。
子結果集的列數必須相同。
子結果集對應的數據類型必須能夠兼容。
每一個子結果集不能包含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)

能夠對兩個或多個結果集進行鏈接,造成差集。返回左邊結果集中已經有的記錄,而右邊結果集中沒有的記錄。select

差集限制條件

子結果集要具備相同的結構。
子結果集的列數必須相同。
子結果集對應的數據類型必須能夠兼容。
每一個子結果集不能包含Order by和compute子句。數據類型

差集(EXCEPT)語法

select * from 結果集
except
select * from 結果集

差集(EXCEPT)示例

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

提示

集合是咱們數據處理過程當中的理論基礎,能夠經過集合的觀點去很好的理解不一樣的查詢語句。每個物理表就是一個集合,當咱們要對錶進行操做的時候,將它們當作對集合的操做就很好理解了。語法

相關文章
相關標籤/搜索