Oracleのソート方法を使用してページネーションクエリを実行するにはどうすればいいですか?
Oracleデータベースでは、ページングクエリを実装するために、ROWNUMおよびROWIDを使用することができます。具体的な手順は以下のとおりです。
- SELECT文を使用して、並べ替えが必要なデータをクエリし、ORDER BY文を使用してデータを並べ替えます。
- テーブル名からすべての列を選択し、列名で並べ替えます。
- クエリの結果にROWNUM関数を使用して番号を付け、新しい列として追加します。
- SELECT ROWNUM AS 行番号, t.*
FROM (
SELECT *
FROM テーブル名
ORDER BY 列名
) t; - ページングクエリ時に各ページの開始位置を正確に特定するために、各行のデータに一意の識別子を取得するためにROWID関数を使用します。
- SELECT ROWNUM AS 行番号、ROWID、t.*
FROM (
SELECT *
FROM テーブル名
ORDER BY 列名
) t; - ソートされた結果をサブクエリを使用してページ分割検索し、開始行と終了行の範囲を設定して指定されたページのデータを取得します。
- 選択 *
開始行以上かつ終了行以下の行数を持つ
(
行番号 AS 行番号、ROWID、t.*
FROM (
SELECT *
FROM テーブル名
列名でソート
) t
)
開始行以上かつ終了行以下の行数を持つ行数を選択します。 - start_rowとend_rowは、ページの開始行と終了行を示し、1ページあたりのレコード数と現在のページ数に基づいて計算することができます。
Oracleデータベースでページング検索を実装し、ソート順を維持することができます。