卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

Oracle分頁(yè)查詢過(guò)程的簡(jiǎn)單實(shí)現(xiàn)

在編寫(xiě)分頁(yè)查詢的過(guò)程中,我們需要細(xì)化每個(gè)步驟,并理解分頁(yè)查詢的原理和步驟。 選擇合適的表 首先,我們需要選擇一張表進(jìn)行分頁(yè)查詢。最好選擇一張獨(dú)立的表,但如果只涉及到查詢操作,也可以使用其他表的子表

在編寫(xiě)分頁(yè)查詢的過(guò)程中,我們需要細(xì)化每個(gè)步驟,并理解分頁(yè)查詢的原理和步驟。

選擇合適的表

首先,我們需要選擇一張表進(jìn)行分頁(yè)查詢。最好選擇一張獨(dú)立的表,但如果只涉及到查詢操作,也可以使用其他表的子表或者父表。如果當(dāng)前用戶下沒(méi)有任何表,在當(dāng)前用戶有權(quán)限的前提下,我們可以創(chuàng)建一張表并導(dǎo)入少量數(shù)據(jù)作為示例。

找出所有信息

第一步是找出1至最大范圍的所有信息。在這一步中,我們需要注意以下幾點(diǎn):

  • 對(duì)于完全查詢部分(即SELECT * FROM table),需要給其取一個(gè)別名。
  • 對(duì)于rownum(行號(hào))也需要取一個(gè)別名(為什么后面會(huì)解釋)。

查詢小于等于的數(shù)據(jù)

經(jīng)常會(huì)有這樣一個(gè)問(wèn)題:為什么要先查詢小于等于某個(gè)界限的數(shù)據(jù)?不能先查詢大于某個(gè)界限的數(shù)據(jù)嗎?事實(shí)上,如果我們先查詢大于某個(gè)界限的數(shù)據(jù),是查不到任何數(shù)據(jù)的。

這是因?yàn)镺racle對(duì)于rownum的分配是這樣的:先獲取內(nèi)層查詢結(jié)果集,再根據(jù)篩選條件對(duì)其分配rownum。rownum從1開(kāi)始,依次分配給每一條記錄。如圖所示,在獲取所有數(shù)據(jù)后,給第一條數(shù)據(jù)分配rownum為1,由于1 < 2(我們查詢的范圍是1至最大范圍),所以這條記錄被剔除。接著,再給下一條記錄分配rownum為1,再次剔除...這樣所有的記錄都不會(huì)保留下來(lái)。

獲取指定范圍的記錄

到了這一步,我們已經(jīng)獲取到了前5條記錄?,F(xiàn)在我們需要獲取3至5的記錄。只需要在外層添加一層SELECT語(yǔ)句即可。

需要注意的是,在外層查詢的篩選條件中,我們需要使用內(nèi)層rownum的別名而不是直接使用rownum。這是為什么在第二步強(qiáng)調(diào)要取別名的原因。如果我們不使用內(nèi)層rownum的別名,外層查詢會(huì)重新分配rownum,而外層條件又是 > 3,所以就會(huì)像第四步一樣,無(wú)法獲取任何數(shù)據(jù)。

新Oracle分頁(yè)查詢實(shí)現(xiàn)方法詳解
標(biāo)簽: