初めて自分の家と他人の家が違う、と意識した時

上位n行目は下記のようにして取得できますよね。

SELECT TOP n 項目A
FROM テーブルA

2行目だけを取得する、あるいは
10行目から20行目だけを取得することはできますか?

A 回答 (2件)

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に変えると
動くと思いますよ。
    • good
    • 0

基本的に、#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の時点で苦しいのですけどね)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報