日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

sql查询两个表结果相减_SQL 操作结果集 -并集、差集、交集、结果集排序

發(fā)布時間:2024/10/8 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql查询两个表结果相减_SQL 操作结果集 -并集、差集、交集、结果集排序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

操作結果集

為了配合測試,特地建了兩個表,并且添加了一些測試數(shù)據(jù),其中重復記錄為東吳的人物。

表:Person_1魏國人物

表:Person_2蜀國人物

A、Union形成并集

Union可以對兩個或多個結果集進行連接,形成“并集”。子結果集所有的記錄組合在一起形成新的結果集。

1、限定條件

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

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

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

(3)、子結果集對應的數(shù)據(jù)類型必須可以兼容。

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

2、語法形式

select_statement union [all] select_statement

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

示例:

SELECT Name FROMPerson_1UNION

SELECT Name FROM Person_2

生成的結果為:

注意到重復記錄,孫權與周瑜僅僅顯示了一個。下面來將UNION替換成UNION ALL看看是什么結果:

SELECT Name FROMPerson_1UNION ALL

SELECT Name FROM Person_2

注意到重復記錄,孫權與周瑜出現(xiàn)了兩次,這就是UNION ALL 與 UNION的不同之處。

B、Except形成差集

Except可以對兩個或多個結果集進行連接,形成“差集”。返回左邊結果集合中已經(jīng)有的記錄,而右邊結果集中沒有的記錄。

限定條件:

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

2、子結果集的列數(shù)必須相同。

3、子結果集對應的數(shù)據(jù)類型必須可以兼容。

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

語法形式:

select_statement except select_statement

自動刪除重復行。

示例:

SELECT Name FROMPerson_1EXCEPT

SELECT Name FROM Person_2

結果:

留意到表Person_2有的,孫權周瑜已被去除。

C、InterSect形成交集

InterSect可以對兩個或多個結果集進行連接,形成“交集”。返回左邊結果集和右邊結果集中都有的記錄。

1、限定條件

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

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

(2)、子結果集的列數(shù)必須相同。

(3)、子結果集對應的數(shù)據(jù)類型必須可以兼容。

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

2、語法形式

select_statement intersect select_statement

示例:

SELECT Name FROMPerson_1INTERSECT

SELECT Name FROM Person_2

返回的結果如下:

留意到只取兩張表都有的記錄(周瑜,孫權),這就是所謂的交集。

D、結果集的排序

SELECT Name FROMPerson_1INTERSECT

SELECT Name FROMPerson_2ORDER BY Name DESC    --此處的字段名相同了,如果不同,請切記排序列名,只能夠是第一個表的列名

這里只有兩點要注意

1.ORDER BY是對整個運算后的結果排序,并不是對單個數(shù)據(jù)集。

2.ORDER BY后面排序的字段名稱是第一個數(shù)據(jù)集的字段名或者別名。

總結

以上是生活随笔為你收集整理的sql查询两个表结果相减_SQL 操作结果集 -并集、差集、交集、结果集排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。