postgresql----UNION&&INTERSECT&&EXCEPT

來源:互聯網
上載者:User

標籤:

多個SELECT語句可以使用UNION,INTERSECT和EXCEPT進行集合處理,其中UNION用於求並集,INTERSECT用於求交集,EXCEPT用於求差集。用法如下

query1 UNION query2 

query1 INTERSECT query2

query1 EXCEPT query2

 

其中query1和query2的SELECT子句中欄位個數必須相同,且對應的資料類型必須相同(如果int和bigint結果取bigint,varchar(5)和varchar(10)結果取varchar(10)),欄位名可以不同,但是最終結果會以第一個SELECT子句中欄位名稱返回。

測試表:

 

test=# create table tbl_test1(test(# a int,test(# b varchar(10),test(# c varchar(5)test(# );CREATE TABLEtest=# create table tbl_test2(test(# e int,test(# f varchar(10),test(# g varchar(32)test(# );CREATE TABLEtest=# insert into tbl_test1(a,b,c) values (1,‘HA‘,‘12‘),(2,‘ha‘,‘543‘);INSERT 0 2test=# insert into tbl_test2(e,f,g) values (1,‘HA‘,‘dh‘),(3,‘hk‘,‘76sskjhk‘);INSERT 0 2

 

 

 

一.UNION

兩個查詢使用UNION的結果使用圖片表示如下:

 

UNION預設會去重,即重複資料只會返回一行,如果需要保留重複資料所有行可以使用UNION ALL。

樣本1.

test=# select a,b from tbl_test1 union select e,f from tbl_test2 ; a | b  ---+---- 3 | hk 1 | HA 2 | ha(3 rows)

 

樣本2.

test=# select a,b from tbl_test1 union all select e,f from tbl_test2 ; a | b  ---+---- 1 | HA 2 | ha 1 | HA 3 | hk(4 rows)

樣本3.

test=# select a,c from tbl_test1 union all select e,g from tbl_test2 ; a |    c     ---+---------- 1 | 12 2 | 543 1 | dh 3 | 76sskjhk(4 rows)

 

二.INTERSECT

兩個查詢使用INTERSECT求交集的結果使用圖片表示如下:

 

樣本1.

test=# select a,b from tbl_test1 intersect select e,f from tbl_test2 ; a | b  ---+---- 1 | HA(1 row)

 

三.EXCEPT

兩個查詢使用EXCEPT(A EXCEPT B)求差集的結果:

 

樣本1.

test=# select a,b from tbl_test1 except select e,f from tbl_test2 ; a | b  ---+---- 2 | ha(1 row)

 

postgresql----UNION&&INTERSECT&&EXCEPT

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.