為了配合測試,特地建了兩個表,并且添加了一些測試資料,其中重複記錄為東吳的人物。
表:Person_1魏國人物

表:Person_2蜀國人物
A、Union形成并集
Union可以對兩個或多個結果集進行連接配接,形成“并集”。子結果集所有的記錄組合在一起形成新的結果集。
1、限定條件
要是用Union來連接配接結果集,有4個限定條件。
(1)、子結果集要具有相同的結構。
(2)、字結果集的列數必須相同。
(3)、子結果集對應的資料類型必須可以相容。
(4)、每個子結果集不能包含order by和compute子句。
2、文法形式
all代表最終的結果集中将包含所有的行,而不能删除重複行。
示例:
生成的結果為:
注意到重複記錄,孫權與周瑜僅僅顯示了一個。下面來将UNION替換成UNION ALL看看是什麼結果:
注意到重複記錄,孫權與周瑜出現了兩次,這就是UNION ALL 與 UNION的不同之處。
B、Except形成差集
Except可以對兩個或多個結果集進行連接配接,形成“差集”。傳回左邊結果集合中已經有的記錄,而右邊結果集中沒有的記錄。
限定條件:
1、子結果集要具有相同的結構。
2、子結果集的列數必須相同。
3、子結果集對應的資料類型必須可以相容。
4、每個子結果集不能包含order by 和 compute子句。
文法形式:
自動删除重複行。
示例:
結果:
留意到表Person_2有的,孫權周瑜已被去除。
C、InterSect形成交集
InterSect可以對兩個或多個結果集進行連接配接,形成“交集”。傳回左邊結果集和右邊結果集中都有的記錄。
1、限定條件
要是用Except來連接配接結果集,有4個限定條件。
(1)、子結果集要具有相同的結構。
(2)、子結果集的列數必須相同。
(3)、子結果集對應的資料類型必須可以相容。
(4)、每個子結果集不能包含order by或compute子句。
2、文法形式
示例:
傳回的結果如下:
留意到隻取兩張表都有的記錄(周瑜,孫權),這就是所謂的交集。
D、結果集的排序
這裡隻有兩點要注意
1.ORDER BY是對整個運算後的結果排序,并不是對單個資料集。
2.ORDER BY後面排序的字段名稱是第一個資料集的字段名或者别名。