ホームページ >データベース >mysql チュートリアル >SQL の ROWNUM を使用して特定の範囲の行を取得するにはどうすればよいですか?

SQL の ROWNUM を使用して特定の範囲の行を取得するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-06 00:47:38442ブラウズ

How to Retrieve a Specific Range of Rows Using SQL's ROWNUM?

SQL ROWNUM 値の特定の範囲の取得

SQL では、ROWNUM 疑似列を使用して、結果内の現在の行の位置を取得できます。セット。限られた範囲の行を返す場合に便利です。ただし、現在のクエリでは、特定の範囲内の行を返す際に問題が発生しているようです。

これを修正するには、わずかな変更が必要です。標準の ROWNUM 疑似列を使用する代わりに、サブクエリを使用して、元のデータと行番号の両方を含む一時テーブルまたは CTE (共通テーブル式) を作成する必要があります。このアプローチにより、フィルター条件が適用される前に行番号が確実に評価されます。

修正されたクエリは次のようになります:

SELECT *
FROM
(
  SELECT m.*, ROWNUM() OVER (ORDER BY m.id) AS r
  FROM maps006 m
)
WHERE r > 49 AND r < 101

このクエリ内:

  • ROWNUM() OVER (ORDER BY m.id) は、maps006 テーブルの各行の行番号を含む r という名前の新しい列を作成します。 id 列順に並べられます。
  • サブクエリには、元のテーブル名と一致するように m というエイリアスが付けられます。
  • その後、メイン クエリは、r の目的の範囲 (つまり、行数が大きい) を使用してサブクエリの結果をフィルタリングします。 49 未満かつ 101 未満)。

この修正されたクエリは、指定された範囲内の行を正常に取得する必要があります。 ROWNUM 範囲。

以上がSQL の ROWNUM を使用して特定の範囲の行を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。