SQLクエリの制限に問題があります。SQL 2000を使用しているため、のような関数は使用できませんROW_NUMBER(),CTE OR OFFSET_ROW FETCH
。
私はこのアプローチを試し、Select TOP limit * FROM
すでに表示されている結果を除外しましたが、結果クエリが10000を超えるレコードをフェッチすることがあるため、この方法ではクエリが非常に遅くなります。
また、私は次のアプローチを試しました:
SELECT * FROM (
SELECT DISTINCT TOP 100 PERCENT i.name, i.location, i.image ,
( SELECT count(DISTINCT i.id) FROM image WHERE i.id<= im.id ) AS recordnum
FROM images AS im
order by im.location asc, im.name asc) as tmp
WHERE recordnum between 5 AND 15
ここで同じ問題に加えて、レコードumからのサブクエリにORDERオプションを追加できなかったための問題。両方のソリューションをストアドプロシージャに配置しましたが、それでもクエリの実行は非常に遅いです。
だから私の質問は:大量のデータ、つまり10000を超えるデータに対してSQL 2000でページごとに20レコードをプルするようにクエリを制限する効率的な方法はありますか?
ありがとう。