• ベストアンサー

2行目を表示できますか?

上位n行目は下記のようにして取得できますよね。 SELECT TOP n 項目A FROM テーブルA 2行目だけを取得する、あるいは 10行目から20行目だけを取得することはできますか?

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

  • ベストアンサー
  • audittrq
  • ベストアンサー率37% (13/35)
回答No.1

10~20件目を表示させたい場合は ----------------------------------- select top 10 [項目A] from [テーブル] where [キー項目] not in (select top 9 [キー項目] from [テーブル] order by [項目B]) order by [項目B] ----------------------------------- このように書けばOKです。 not in (select top 9 で、1~9件目のデータを飛ばしています。 2件目のみの表示だけでいいならば、ここの 9 を 1に変えると 動くと思いますよ。

その他の回答 (1)

回答No.2

基本的に、#1で書かれているSQLで異論はないのですが・・ 100001件目~100010件のような、巨大なデータの後半戦だと、 not inが如何にも苦しいように感じます。 select * from (select top 10 * from (select top 100010 * from X order by x) order by x desc) order by x の方がRDBに、ちょっとだけ優しいような気がします。 (top 100010の時点で苦しいのですけどね)

関連するQ&A