• ベストアンサー

○件目~△件目のみ抽出したい

はじめて教えてgooを利用させていただきます。 質問ですが、たとえば、 SELECT 項目1, 項目2, 項目3 FROM テーブルA WHERE 項目1 = 1 ORDER BY 項目2 の結果セットの内、上から30件目~60件目だけ欲しいのですが、 どう記述すればいいのか悩んでいます。 いい方法があれば教えてください。

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

  • ベストアンサー
  • allineed
  • ベストアンサー率54% (13/24)
回答No.2

SQL Serverはあまり詳しくないんですが、TOP句を組み合わせて使うのが一般的なようです。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=11020&forum=7 ORACLEならROWNUMで簡単にできるんですけどね。

zut
質問者

お礼

ありがとうございます。 お教えいただいたリンク先に 試してみようと思ったようなコードサンプルが ありました。 今からやってみますね。

zut
質問者

補足

ストアドの書き方で SELECT TOP m * FROM table のmを変数で指定したいのですが、 書き方がわからないので、苦戦しています。

その他の回答 (1)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 残念ながら、SQL Serverにはこの機能が備わっていないのです。なので、29行を読み飛ばした後31行を読み込むという処理が必要なのです。

zut
質問者

お礼

ご回答ありがとうございます。 残念です。。。。 xml出力用に、SELECT文一発でなんとかしたいのです(泣) TOP30 とか先頭からは取れるので、 TOP30を除いた残り分のTOP30が取れないでしょうか? それか、結果セットに連番フィールドを追加できないでしょうか? もうちょっと考えてみます。

zut
質問者

補足

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9418&forum=7 を参考にさせていただき出来ました。 ありがとうございました。

関連するQ&A