為了配合測試,特地建了兩個表,並且新增了一些測試資料,其中重覆記錄為東吳的人物。
表:person_1魏國人物
表:person_2蜀國人物
a、union形成並集
union可以對兩個或多個結果集進行連線,形成「並集」。子結果集所有的記錄組合在一起形成新的結果集。
1、限定條件
要是用union來連線結果集,有4個限定條件。
(1)、子結果集要具有相同的結構。
(2)、字結果集的列數必須相同。
(3)、子結果集對應的資料型別必須可以相容。
(4)、每個子結果集不能包含order by和compute子句。
2、語法形式
select_statement union [all] select_statementall代表最終的結果集中將包含所有的行,而不能刪除重複行。
示例:
select name from person_1生成的結果為:union
select name from person_2
注意到重覆記錄,孫權與周瑜僅僅顯示了乙個。下面來將union替換成union all看看是什麼結果:
select name from person_1注意到重覆記錄,孫權與周瑜出現了兩次,這就是union all 與 union的不同之處。union all
select name from person_2
b、except形成差集
except可以對兩個或多個結果集進行連線,形成「差集」。返回左邊結果集合中已經有的記錄,而右邊結果集中沒有的記錄。
限定條件:
1、子結果集要具有相同的結構。
2、子結果集的列數必須相同。
3、子結果集對應的資料型別必須可以相容。
4、每個子結果集不能包含order by 和 compute子句。
語法形式:
select_statement except select_statement自動刪除重複行。
示例:
select name from person_1結果:except
select name from person_2
留意到表person_2有的,孫權周瑜已被去除。
c、intersect形成交集
intersect可以對兩個或多個結果集進行連線,形成「交集」。返回左邊結果集和右邊結果集中都有的記錄。
1、限定條件
要是用except來連線結果集,有4個限定條件。
(1)、子結果集要具有相同的結構。
(2)、子結果集的列數必須相同。
(3)、子結果集對應的資料型別必須可以相容。
(4)、每個子結果集不能包含order by或compute子句。
2、語法形式
select_statement intersect select_statement示例:
select name from person_1返回的結果如下:intersect
select name from person_2
留意到只取兩張表都有的記錄(周瑜,孫權),這就是所謂的交集。
d、結果集的排序
select name from person_1這裡只有兩點要注意intersect
select name from person_2
order by name desc --此處的欄位名相同了,如果不同,請切記排序列名,只能夠是第乙個表的列名
1.order by是對整個運算後的結果排序,並不是對單個資料集。
2.order by後面排序的欄位名稱是第乙個資料集的欄位名或者別名。
SQL 操作結果集 並集 差集 交集 結果集排序
為了配合測試,特地建了兩個表,並且新增了一些測試資料,其中重覆記錄為東吳的人物。表 person 1魏國人物 表 person 2蜀國人物 a union形成並集 union可以對兩個或多個結果集進行連線,形成 並集 子結果集所有的記錄組合在一起形成新的結果集。1 限定條件 要是用union來連線結...
SQL 操作結果集 並集 差集 交集 結果集排序
為了配合測試,特地建了兩個表,並且新增了一些測試資料,其中重覆記錄為東吳的人物。表 person 1魏國人物 表 person 2蜀國人物 a union形成並集 union可以對兩個或多個結果集進行連線,形成 並集 子結果集所有的記錄組合在一起形成新的結果集。1 限定條件 要是用union來連線結...
SQL 操作結果集 並集 差集 交集 結果集排序
為了配合測試,特地建了兩個表,並且新增了一些測試資料,其中重覆記錄為東吳的人物。表 person 1魏國人物 表 person 2蜀國人物 a union形成並集 union可以對兩個或多個結果集進行連線,形成 並集 子結果集所有的記錄組合在一起形成新的結果集。1 限定條件 要是用union來連線結...