Oracle minus用法
?????? “minus”直接翻譯為中文是“減”的意思,在Oracle中也是用來做減法操作的,只不過它不是傳統(tǒng)意義上對數(shù)字的減法,而是對查詢結(jié)果集的減法。A minus B就意味著將結(jié)果集A去除結(jié)果集B中所包含的所有記錄后的結(jié)果,即在A中存在,而在B中不存在的記錄。其算法跟Java中的Collection的removeAll()類似,即A minus B將只去除A跟B的交集部分,對于B中存在而A中不存在的記錄不會做任何操作,也不會拋出異常。
?????? Oracle的minus是按列進(jìn)行比較的,所以A能夠minus B的前提條件是結(jié)果集A和結(jié)果集B需要有相同的列數(shù),且相同列索引的列具有相同的數(shù)據(jù)類型。此外,Oracle會對minus后的結(jié)果集進(jìn)行去重,即如果A中原本多條相同的記錄數(shù)在進(jìn)行A minus B后將會只剩一條對應(yīng)的記錄,具體情況請看下面的示例。
??????? 下面我們來看一個minus實際應(yīng)用的示例,假設(shè)我們有一張用戶表t_user,其中有如下記錄數(shù)據(jù):
?那么:
(1)“select id from t_user where id<6 minus select id from t_user where id between 3 and 7”的結(jié)果將為:
(2)“select age,level_no from t_user where id<8 minus select age,level_no from t_user where level=3”的結(jié)果為:
?看到這樣的結(jié)果,可能你會覺得有點奇怪,為何會是這樣呢?我們來分析一下。首先,“select age,level_no from t_user where id<8”的結(jié)果將是這樣的:
?然后,“select age,level_no from t_user where level=3”的結(jié)果將是這樣的:
然后,直接A minus B之后結(jié)果應(yīng)當(dāng)是:
? ? ? ?這個時候,我們可以看到結(jié)果集中存在重復(fù)的記錄,進(jìn)行去重后就得到了上述的實際結(jié)果。其實這也很好理解,因為minus的作用就是找出在A中存在,而在B中不存在的記錄。
?????? 上述示例都是針對于單表的,很顯然,使用minus進(jìn)行單表操作是不具備優(yōu)勢的,其通常用于找出A表中的某些字段在B表中不存在對應(yīng)記錄的情況。比如我們擁有另外一個表t_user2,其擁有和t_user表一樣的表結(jié)構(gòu),那么如下語句可以找出除id外,在t_user表中存在,而在t_user2表中不存在的記錄。
select no,name,age,level_no from t_user minus select no,name,age,level_no from t_user2;
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
更多Oracle minus用法詳解及應(yīng)用實例相關(guān)文章請關(guān)注PHP中文網(wǎng)!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)