麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

Oracle minus用法詳解及應(yīng)用實(shí)例

2024-08-29 13:59:36
字體:
供稿:網(wǎng)友

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)的記錄,具體情況請看下面的示例。

        下面我們來看一個(gè)minus實(shí)際應(yīng)用的示例,假設(shè)我們有一張用戶表t_user,其中有如下記錄數(shù)據(jù):

 

id

no

name

age

level_no

1

00001

a

25

1

2

00002

b

30

2

3

00003

c

35

3

4

00004

d

45

1

5

00005

e

30

2

6

00006

f

35

3

7

00007

g

25

1

8

00008

h

35

2

9

00009

i

20

3

10

00010

j

25

1

 

       那么:

       (1)“select id from t_user where id<6 minus select id from t_user where id between 3 and 7”的結(jié)果將為:

 

id

1

2

 

       (2)“select age,level_no from t_user where id<8 minus select age,level_no from t_user where level=3”的結(jié)果為:

 

age

level_no

25

1

30

2

45

1

 

        看到這樣的結(jié)果,可能你會覺得有點(diǎn)奇怪,為何會是這樣呢?我們來分析一下。首先,“select age,level_no from t_user where id<8”的結(jié)果將是這樣的:

 

age

level_no

25

1

30

2

35

3

45

1

30

2

35

3

25

1

 

       然后,“select age,level_no from t_user where level=3”的結(jié)果將是這樣的:

 

age

level_no

35

3

35

3

20

3

 

       然后,直接A minus B之后結(jié)果應(yīng)當(dāng)是:

 

age

level_no

25

1

30

2

45

1

30

2

25

1

 

       這個(gè)時(shí)候,我們可以看到結(jié)果集中存在重復(fù)的記錄,進(jìn)行去重后就得到了上述的實(shí)際結(jié)果。其實(shí)這也很好理解,因?yàn)閙inus的作用就是找出在A中存在,而在B中不存在的記錄。

       上述示例都是針對于單表的,很顯然,使用minus進(jìn)行單表操作是不具備優(yōu)勢的,其通常用于找出A表中的某些字段在B表中不存在對應(yīng)記錄的情況。比如我們擁有另外一個(gè)表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;

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關(guān)教程知識閱讀請移步到oracle教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久精品二区 | 一级国产精品一级国产精品片 | 污版视频在线观看 | 日韩视频一区二区 | 亚洲爱爱图 | 久久久久中文字幕 | 国产小视频一区 | 麻豆视频在线观看免费网站 | 国产精品一区二区三区在线看 | 在线成人免费观看www | 欧美五月婷婷 | 国产精品一区二区羞羞答答 | 中文字幕观看 | 日本精品久久久一区二区三区 | 毛片福利| 成人在线观看免费爱爱 | 国产深夜福利视频在线播放 | av电影在线网| 一级成人在线 | 草莓视频在线导航 | 鲁丝片一区二区三区免费入口 | 国产porn在线| 中文字幕在线观看精品 | 久久久三区 | 国产 一区 精品 | 91久久久久久久久久久久久 | 久久久久久久久久久久久久久久久久 | 亚洲视频观看 | 成人福利免费在线观看 | 视频www| 久久久一区二区三区精品 | 羞羞答答视频 | 久久96国产精品久久秘臀 | 国产日产精品一区四区介绍 | 免费黄色小视频网站 | 小视频在线看 | 欧美h版电影在线观看 | 天天碰夜夜操 | 国产日韩精品欧美一区视频 | 一级尻逼视频 | 看免费5xxaaa毛片 |