SQL 操作結果集 並集 差集 交集 結果集排序

2021-07-09 17:40:00 字數 2410 閱讀 4421

為了配合測試,特地建了兩個表,並且新增了一些測試資料,其中重覆記錄為東吳的人物。

表:person_1魏國人物

表:person_2蜀國人物

a、union形成並集

union可以對兩個或多個結果集進行連線,形成「並集」。子結果集所有的記錄組合在一起形成新的結果集。

1、限定條件

要是用union來連線結果集,有4個限定條件。

(1)、子結果集要具有相同的結構。

(2)、字結果集的列數必須相同。

(3)、子結果集對應的資料型別必須可以相容。

(4)、每個子結果集不能包含order by和compute子句。

2、語法形式

select_statement union

[all

] select_statement

all代表最終的結果集中將包含所有的行,而不能刪除重複行。

示例:

select name from

person_1

union

select name from person_2

生成的結果為:

注意到重覆記錄,孫權與周瑜僅僅顯示了乙個。下面來將union替換成union all看看是什麼結果:

select name from

person_1

union

allselect name from person_2

注意到重覆記錄,孫權與周瑜出現了兩次,這就是union all 與 union的不同之處。

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來連線結...