PostgreSQL 組合查詢

2021-08-26 17:45 更新

兩個查詢的結(jié)果可以用集合操作并、交、差進行組合。語法是

query1 UNION [ALL] query2
query1 INTERSECT [ALL] query2query1 EXCEPT [ALL] query2

query1query2都是可以使用以上所有特性的查詢。集合操作也可以嵌套和級連,例如

query1 UNION query2 UNION query3

實際執(zhí)行的是:

(query1 UNION query2
) UNION query3

UNION有效地把query2的結(jié)果附加到query1的結(jié)果上(不過我們不能保證這就是這些行實際被返回的順序)。此外,它將刪除結(jié)果中所有重復(fù)的行, 就象DISTINCT做的那樣,除非你使用了UNION ALL。

INTERSECT返回那些同時存在于query1query2的結(jié)果中的行,除非聲明了INTERSECT ALL, 否則所有重復(fù)行都被消除。

EXCEPT返回所有在query1的結(jié)果中但是不在query2的結(jié)果中的行(有時侯這叫做兩個查詢的)。同樣的,除非聲明了EXCEPT ALL,否則所有重復(fù)行都被消除。

為了計算兩個查詢的并、交、差,這兩個查詢必須是并操作兼容的,也就意味著它們都返回同樣數(shù)量的列, 并且對應(yīng)的列有兼容的數(shù)據(jù)類型,如第 10.5 節(jié)中描述的那樣。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號