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

Oracle分頁查詢過程的簡單實現(xiàn)

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

在編寫分頁查詢的過程中,我們需要細化每個步驟,并理解分頁查詢的原理和步驟。

選擇合適的表

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

找出所有信息

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

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

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

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

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

獲取指定范圍的記錄

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

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

新Oracle分頁查詢實現(xiàn)方法詳解
標簽: