我遇到了限制 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 选项。我已将这两种解决方案都放在存储过程中,但查询执行仍然很慢。
所以我的问题是:有没有一种有效的方法来限制查询在 SQL 2000 中为大量数据(即超过 10000 条)每页提取 20 条记录?
谢谢。