oracle 數(shù)據(jù)庫(kù)分頁(yè)利用 rownum 偽列或 fetch 語(yǔ)句實(shí)現(xiàn):rownum 偽列用于通過(guò)行號(hào)過(guò)濾結(jié)果,適用于復(fù)雜查詢。fetch 語(yǔ)句用于獲取指定數(shù)量的第一行,適用于簡(jiǎn)單查詢。
Oracle 數(shù)據(jù)庫(kù)分頁(yè)機(jī)制
在 Oracle 數(shù)據(jù)庫(kù)中,可以使用 ROWNUM 偽列或 FETCH 語(yǔ)句來(lái)實(shí)現(xiàn)分頁(yè)。
ROWNUM 偽列
語(yǔ)法:
SELECT * FROM table_name WHERE ROWNUM * <page_number></page_number>
登錄后復(fù)制
說(shuō)明:
ROWNUM 是一個(gè)偽列,表示當(dāng)前行的行號(hào)。
page_size 是每頁(yè)的行數(shù)。
page_number 是要獲取的頁(yè)數(shù)。
例如:
獲取第 2 頁(yè),每頁(yè) 5 行的數(shù)據(jù):
SELECT * FROM table_name WHERE ROWNUM <p><strong>FETCH 語(yǔ)句</strong></p><p><strong>語(yǔ)法:</strong></p><pre class="brush:php;toolbar:false">FETCH FIRST <page_size> ROWS ONLY FROM table_name</page_size>
登錄后復(fù)制
說(shuō)明:
FETCH 語(yǔ)句返回指定數(shù)量的第一行。
page_size 是每頁(yè)的行數(shù)。
例如:
獲取第二頁(yè),每頁(yè) 5 行的數(shù)據(jù):
FETCH FIRST 5 ROWS ONLY FROM table_name OFFSET 5 ROWS
登錄后復(fù)制
選擇分頁(yè)方法
如果需要在查詢中進(jìn)行復(fù)雜的過(guò)濾或排序,則使用 ROWNUM 偽列。
如果只需要獲取指定數(shù)量的第一行(不進(jìn)行復(fù)雜的過(guò)濾或排序),則使用 FETCH 語(yǔ)句。