intersect的用法簡介

intersect的用法簡介

 

       Oracle中,“A minus B”用於將結果集B中含有的記錄從結果集A中移除,即用於獲取存在於結果集A中而不存在於結果集B中的記錄;“A union B”和“A union all B”用於獲取結果集A和結果集B的並集,其中前者將只保留重複記錄中的一條,而後者將保留所有的記錄;“A intersect B”用於獲取結果集A和結果集B共有的記錄,即它們的交集。在本文中將簡要的介紹一下intersect的用法。

 

       intersectminusunion一樣,它們都需要結果集A和結果集B擁有相同的結構,即它們的列數要一致,且每列的數據類型也需要一致,否則沒法進行比較。

 

       下面來看一個使用intersect的示例,假設我們有如下這樣一張表t_interest和數據,其中記錄了每一個人的興趣愛好。

 

id

name

interest

1

zhangsan

basketball

2

zhangsan

football

3

zhangsan

baseball

4

zhangsan

swimming

5

zhangsan

music

6

zhangsan

movie

7

lisi

basketball

8

lisi

football

9

lisi

game

10

lisi

movie

 

       假設現在我們需要找出zhangsanlisi共同擁有的興趣愛好,如果使用Oracleintersect來實現,那麼我們的SQL可以這樣來寫:

select interest from t_interest where name='zhangsan' intersect select interest from t_interest where name='lisi';

  

       很顯然,查詢出來的結果會是如下這樣:

interest

basketball

football

movie

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章