• ベストアンサー

抽出結果を分割して取得

SELECT * FROM TABLE ORDER BY A; で取得したデータが100件あったとして、 1件目から20件目だけを取得する 21件目から40件目だけを取得する みたいに、件数を指定して取得するようなSQL文は書くことができますか? データベースはOracle8iです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

私も探しました。 んで、見つかった方法がこれ! (SELECT ROW_NUMBER() OVER(ORDER BY A) rownum1, SELECT * FROM TABLE ORDER BY A ) inline_view1 WHERE rownum1 BETWEEN 21 AND 40; ちなみにMySQL、Postgresなら ... LIMIT m,n; でOK。

HaruXP
質問者

お礼

なるほど!! 難しいクエリーですが、なるほどの一言ですね! ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

何処かの掲示板にかいてありました。 select * from ( select * from table order by a ) where rownum between 1 and 20; ちょっと手元にOracleが無いのですぐに確認できないのですが、平気じゃないかな?と思ってます。

すると、全ての回答が全文表示されます。

専門家に質問してみよう