SQL 結果集合操作

2021-07-24 13:40:05 字數 2410 閱讀 6622

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

表: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語句 操作集合

保留小數字數 select cast 列名as 數值型別,如decimal,numeric等 長度,小數點後位數 列名 from 表名 例 select cast sid as decimal 18,2 sid from user case 用法 單條件 select case xx when nu...

MySQL查詢in操作 查詢結果按in集合順序顯示

引自 mysql 查詢in操作,查詢結果按in集合順序顯示 複製 如下 select from test where id in 3,1,5 order by find in set id,3,1,5 select from test where id in 3,1,5 order by subst...

SQL入門之集合操作

儘管可以在與資料庫互動時一次只處理一行資料,但實際上關聯式資料庫通常處理的都是資料的集合。在數學上常用的集合操作為 並 union 交 intersect 差 except 對於集合運算必須滿足下面兩個要求 sql語言中每個集合操作符包含兩種修飾 乙個包含重複項,另乙個去除了重複項 但不一定去除了所...