首先我們做一下測試數據
1、創建測試數據
--創建人員表1-- create table Person1 ( Uid int identity(1,1) primary key, Name varchar(20) not null ) --創建人員表2-- create table Person2 ( Uid int identity(1,1) primary key, Name varchar(20) not null ) --插入數據-- insert into Person1 values('曹操'),('郭嘉'),('典韋'),('孫權'),('周瑜') insert into Person2 values('劉備'),('關羽'),('張飛'),('孫權'),('周瑜') --查詢數據-- select * from Person1 select * from Person2
2、測試數據查詢結果如下
1)表1和表2的數據
3、集合中的並集、差集和交集
3.1、並集(union)
1)並集的定義
Union可以對兩個或多個結果集進行連接,形成“並集”。子結果集所有的記錄組合在一起形成新的結果集。
2)限制條件
2.1)子結果集要具有相同的結構。
2.2)字結果集的列數必須相同。
2.3)子結果集對應的數據類型必須可以兼容。
2.4)每個子結果集不能包含order by和compute子句
3) 並集的使用
--1、並集 union -- --1)去掉重復項的並集-- select Name from Person1 union select Name from Person2 --2)不去掉重復項的並集-- select Name from Person1 union all select Name from Person2
4)查詢的結果
3.2、差集(except)
1)差集的定義
Except可以對兩個或多個結果集進行連接,形成“差集”。返回左邊結果集合中已經有的記錄,而右邊結果集中沒有的記錄。
2) 限制條件
2.1)子結果集要具有相同的結構。
2.2)子結果集的列數必須相同
2.3)子結果集對應的數據類型必須可以兼容。
2.4)每個子結果集不能包含order by 和 compute子句。
3)差集的使用
--Except 差集--- select Name from Person1 except select Name from Person2
4)查詢的結果
3.3 、交集(InterSect)
1)交集的定義
InterSect可以對兩個或多個結果集進行連接,形成“交集”。返回左邊結果集和右邊結果集中都有的記錄
2)限制條件
2.1)子結果集要具有相同的結構。
2.2)子結果集的列數必須相同
2.3)子結果集對應的數據類型必須可以兼容。
2.4)每個子結果集不能包含order by 和 compute子句。
3)交集的使用
--InterSect 交集-- select * from Person1 InterSect select * from Person2
4)查詢的結果
參考網址:
http://www.cnblogs.com/kissdodog/archive/2013/06/24/3152743.html