SQL INQUIRY在如何获取已定义的记录数

时间:2010-04-14 10:13:22

标签: sql sql-server tsql select

我有一个select语句,检索大约1000条记录 我想修改它只返回@startIndex和@count定义的一些记录 例如:如果我说@ startIndex = 20和@count = 20 结果将是:从第21记录到第40记   我尝试制作它,但它需要同样的时间,就像我检索1000记录

最好的方法是什么

2 个答案:

答案 0 :(得分:1)

这通常称为 Paging ,如果你谷歌搜索'sql server paging',有很多样本,例如this MSDN blog post

答案 1 :(得分:1)

WITH data AS (SELECT DISTINCT name FROM sysobjects),
     ranked AS (SELECT ROW_NUMBER() OVER (ORDER BY name) rownum, * FROM data)
SELECT * FROM ranked 
WHERE rownum BETWEEN @startIndex + 1 AND @startIndex + @count 
ORDER BY rownum