intersect的用法簡介
在Oracle中,“A minus B”用于将結果集B中含有的記錄從結果集A中移除,即用于擷取存在于結果集A中而不存在于結果集B中的記錄;“A union B”和“A union all B”用于擷取結果集A和結果集B的并集,其中前者将隻保留重複記錄中的一條,而後者将保留所有的記錄;“A intersect B”用于擷取結果集A和結果集B共有的記錄,即它們的交集。在本文中将簡要的介紹一下intersect的用法。
intersect和minus、union一樣,它們都需要結果集A和結果集B擁有相同的結構,即它們的列數要一緻,且每列的資料類型也需要一緻,否則沒法進行比較。
下面來看一個使用intersect的示例,假設我們有如下這樣一張表t_interest和資料,其中記錄了每一個人的興趣愛好。
id
name
interest
1
zhangsan
basketball
2
football
3
baseball
4
swimming
5
music
6
movie
7
lisi
8
9
game
10
假設現在我們需要找出zhangsan和lisi共同擁有的興趣愛好,如果使用Oracle的intersect來實作,那麼我們的SQL可以這樣來寫:
很顯然,查詢出來的結果會是如下這樣: