集合是由一個或多個元素構成的總體,在SQLServer中的表就表明着事實集合,而其中的查詢就是在集合的基礎上生成的結果集。SQL Server的集合包括交集(INTERSECT)、並集(UNION)、差集(EXCEPT)。code
能夠對兩個多個結果集進行鏈接,造成"交集"。返回左邊結果集和右邊結果集中都有的記錄,且結果不重複(這也是集合的主要特性)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能夠獲得不重複(去重複)的結果集,使用UNION ALL會獲得重複(不去重的結果集)。test
子結果集要具備相同的結構。
子結果集的列數必須相同。
子結果集對應的數據類型必須能夠兼容。
每一個子結果集不能包含order by 和compute子句基礎
select * from 結果集 union select * from 結果集
select name from [testss].[dbo].[schema_table1] union select name from [testss].[dbo].[test1]
select * from 結果集 union all select * from 結果集
select name from [testss].[dbo].[schema_table1] union all select name from [testss].[dbo].[test1]
能夠對兩個或多個結果集進行鏈接,造成差集。返回左邊結果集中已經有的記錄,而右邊結果集中沒有的記錄。select
子結果集要具備相同的結構。
子結果集的列數必須相同。
子結果集對應的數據類型必須能夠兼容。
每一個子結果集不能包含Order by和compute子句。數據類型
select * from 結果集 except select * from 結果集
select name from [testss].[dbo].[schema_table1] except select name from [testss].[dbo].[test1]
集合是咱們數據處理過程當中的理論基礎,能夠經過集合的觀點去很好的理解不一樣的查詢語句。每個物理表就是一個集合,當咱們要對錶進行操做的時候,將它們當作對集合的操做就很好理解了。語法