• ベストアンサー

SQLでn番目からm番目を取得したい

SQLでORDER BYをして、n番目からm番目を取得したい場合、 どのようにしたらいいのでしょうか? TOP mで取得してnまでをスルーするしかないのでしょうか?

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

  • ベストアンサー
  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.2

 解りやすいのは、with句を利用して、ROW_NUMBER列を形成し、本体select文側で、ROW_NUMBER列に対して条件付けしてあげることかな。  例えば・・・ WITH JYUNITUKI AS (SELECT RETU1,RETU2,RETU3,        ROW_NUMBER() OVER ( ORDER BY RETU1) AS ROWNUM    FROM TABLE1 WHERE 条件いろいろ) SELECT RETU1, RETU2, RETU3 FROM JYUNITUKI J WHERE J.ROWNUM BETWEEN 50 AND 100  とかですね。

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

その他の回答 (1)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 重複項目を取得するSQL分

    SQL分でわからないことがあるので質問させてください。 Aというテーブルに、 番号と処理通番(ユニーク)の2つカラムがあります。 Aテーブルから重複した番号とその処理通番を 上から4件まで取得したいのですが、 ----------------------------- SELECT A.番号,A.処理通番 FROM A INNER JOIN (SELECT 番号 FROM A GROUP BY 番号 HAVING COUNT(*) > 1) AS B ON (A.番号 = B.番号) ORDER BY A.番号,A.処理通番 ----------------------------- のSQLでは重複した番号のデータを 全て取得してしまいます。 番号別に4件まで取得したいのですが、 どのようなSQLを書けば取得できますか? よろしくお願いします。

  • SQL Server:取得結果Order Byについて

    SQL Server7.0なのですが、自分の環境では取得結果はテーブルのプライマリーキー昇順で暗黙のOrder Byがかかっているように動きます。 でもリリース先ではこのOrder Byが働かずバラバラな取得結果となっていてトラブルになりました。対処としては明示的にOrder Byを記述して直ったのですが、自分の環境で暗黙に並べ変わっているのはどうしてでしょうか?

  • SQLのクエリで教えてほしいです。

    SQLのクエリで教えてほしいです。 ある列のTOP10を出してグラフを作成したいと考えております。 また、そのTOP10の行をカウントして何件あるかを知りたいのですが なかなか思うように動きません。 以下クエリを作ったのですが、結果に16行の結果(Top16?) になってしまいます。 また、一つのSQLで、Countも含めたいと思ってますが、こういった場合 はどこに記述すればいいのでしょうか。 select TOP (10) Percent hoge from hogehoge group by hoge order by hoge ご存知の方、よろしくお願い致します。

  • Oracle8のトップN解析

    質問させていただきます。 Oracle8iの場合、トップN解析ということで select id, name from (select id, name from tmp order by id desc) where rownum <= 3; というSQLを作成してidを前から3つだけ検索できますが、 Oracle8の場合、インラインビューでの[order by]が 無効なので、困っています。 よければ、ほかの方法はないものでしょうか?

  • SQLServerのselect文でデータ数1万くらいのDBから

    SQLServerのselect文でデータ数1万くらいのDBから top n と order by つきで取得したときに、 10秒以上かかってしまいます。 top n だけや order byだけであれば、そんなにかかりませんが、 同時に扱う場合、なぜこんなに時間がかかってしまうのでしょうか?

  • Access2003 上からn番目の数値の取得

    Access2003 上からn番目の数値の取得 クロス集計クエリで、年間12回測定しているうちの 4番目の数値を取得したいと考えています。 最大、最小、平均はもちろんわかるのですが、 「n番目」が判らず困っています。 ちなみに下は最大値を集計したクロス集計クエリです。 TRANSFORM Max([気象テーブル].気温) AS 気温の最大 SELECT [気象テーブル].年 FROM [気象テーブル] GROUP BY [気象テーブル].年 PIVOT [気象テーブル].測定地点; Maxのところに何らかの関数が入るのでしょうか・・・ どなたかご教示をお願いいたします。

  • 1個のSQL分で2種類以上の件数値を取得する

    SQL分の記述で質問なんですが、 データベース上に日付、時間、フラグと言う項目があります。 同一の日付、時間のものは数件ずつあります。 フラグは"b"と"1"があります。 このデータの日付・時間辺りの件数と+フラグが"1"の件数を同時に取得するSQL分はかけますでしょうか? 別々ならば、 SELECT DATE,TIME,COUNT(*) AS KENSU1 FROM W_TABLE GROUP BY DATE,TIME ORDER BY DATE,TIME と SELECT DATE,TIME,COUNT(*) AS KENSU2 FROM W_TABLE WHERE FLG="1" GROUP BY DATE,TIME ORDER BY DATE,TIME でかけると思うのですが、 1個のSQL分で記述は可能でしょうか? 処理結果を 05/02/23 12:00 10 5 05/02/24 10:00 12 3 (日付・時間・件数・フラグ="1"の件数  見たいに取得したいのですが..

  • 上から何番目か。

    $sql = "select * from table_namae where no = 115 order by jikan desc"; の場合、上から何番目か知る方法がわからん。 時間でソートして、そのnoが上から何番目かを知りたい。 もちろん、レコードの値も欲しい。 NO 115を検索して  タイトル 名前 パスワード  → 時間でソートして上から?番目 noはPRIMARYで重複する値はなく常に一つだけ。 SQLで値を得る事は、無理? noは特にその都度変わるので、limitは使えないと思うんですが。 PHPなら、ソートして最初から希望のナンバーまでのレコードを取得。 $i = 0;  while($col = mysql_fetch_array($rst)){$i++; if(希望のナンバー){ print "$i番目"; print "タイトル、名前さん。"} } これでも、取得できるけど、無駄なループになるし。

    • ベストアンサー
    • MySQL
  • 変な質問ですみません、n番目の「n」は何故n?

    そのままなのですが疑問です。 よく、n番目の配列とか、n番目を取得といった具体に、仮定した数字を「n」番と表しますが、これには何か深い意味がありますか?xとかでもよいかと思ったので・・・。 しかし、となるとxも何故xか? aでも良いのではというお話になりますか。汗)

  • 日付が上手く取得できないです

    $row['date'] で吐き出してます。 この吐き出したデータの最大値を取得したいです。 5/5 5/10 5/20 なら5/20を取りたいわけです。 しかし、この日付。max()で正常な最大値が取得できないです。SQLのORDER BYなら日付でも判別しますが なにか方法はないですか?? あくまでも一度全部の日付をだしたいので、SQLで最大値をとるのでは、ちょっと違ってしまうです。

    • ベストアンサー
    • PHP
FP-30xでUSB録音はPC再生できますか
このQ&Aのポイント
  • FP-30xでUSB録音した演奏はPCで再生可能かどうかについて教えてください。
  • USBで録音した演奏をPCで再生することができるのか、それともFP-30xでの再生に限られるのか教えてください。
  • PCでUSB録音した演奏を再生する方法や制限について教えてください。
回答を見る