Oracle SQL ページネーションの ROWNUM をマスターする
このガイドでは、Oracle SQL クエリでのページ分割のための ROWNUM の効果的な使用法を明確にします。 よくある落とし穴に対処し、ベスト プラクティスを示します。
*なぜ `SELECT FROM person WHERE rownum > を選択するのか100 AND 行番号
ROWNUM の割り当ては、述語フィルタリングの後、並べ替えまたは集計の前に行われます。 ROWNUM は割り当て後 で順番にインクリメントされるため、rownum > 1
のような条件は常に空のセットを返します。 最初の行は ROWNUM = 1 を受け取りますが、条件は満たされません。
SELECT ... FROM ... WHERE rownum BETWEEN lowerBound AND upperBound
12c より前の Oracle バージョンでは、ページネーションに対するこの直接的な BETWEEN
アプローチはサポートされていません。 ただし、Oracle 12c 以降のバージョンでは、優れた OFFSET ... FETCH
構文 (SELECT ... FROM ... OFFSET 4 ROWS FETCH NEXT 4 ROWS ONLY
など) が提供されます。
ROWNUM 列の抑制
ROWNUM 列の表示を回避するには、SELECT
を使用する代わりに、SELECT *
ステートメントで目的の列を明示的にリストします。必要性が低い場合は、SQL*Plus NOPRINT
コマンドを使用して不要な列を一時的に非表示にすることができます。
ROWNUM による正確なページネーションの確保
ROWNUM が正しく実装されると、正確なページネーションが提供されます。 重要なのは、まず目的の順序に従ってデータを ORDER BY
し、次に ROWNUM を使用して行の特定のサブセットを選択することです。 ROWNUM のこの順次割り当ての特性により、順序付けの手順が必要になります。
以上がOracle SQL クエリのページネーションに ROWNUM を効果的に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。