查詢Select * From Person Where rownum > 100 and rownum < 200
傳回一個空結果集,因為ROWNUM在擷取行時將數字指派給行。 WHERE
子句過濾 after ROWNUM 已指派的數字。 ROWNUM 大於 100 的行僅在前 100 行已被處理並分配 ROWNUM 值之後才被視為。
Oracle 12c 的 Top-n Row Limiting 功能提供了一種更直接的分頁方法。 語法 Select ... FROM ... WHERE rownum BETWEEN lowerBound AND upperBound
直接選擇指定範圍內的行,無需子查詢。
為了避免顯示 ROWNUM 列,請在外部查詢的 SELECT
清單中明確列出所需的列。或者,建立一個視圖來封裝查詢或使用 SQL*Plus 的 NOPRINT
指令來抑制不需要的輸出。
使用 ROWNUM 進行準確分頁取決於正確的查詢構造。 至關重要的是,使用唯一識別碼(主鍵)對結果進行排序,以確保跨頁面的行選擇一致。 雖然按 ROWNUM 排序本身不會否定 FIRST_ROWS(N)
,但使用唯一識別碼可以保證檢索到預期的行。
以上是ROWNUM 如何在 Oracle 分頁查詢中運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!