如何检索前1000条记录然后接下来1000条继续?

时间:2012-03-18 01:15:33

标签: sql netezza

select top 1000 from table1.

然后我如何继续下一个1000并继续从表中继续。有记录计数跨越数百万,我必须采取和处理信息在一个漫长的过程..所以,考虑使用Cursor检索1000和下一个1000.任何其他最好的方式?

1 个答案:

答案 0 :(得分:1)

如果您使用的是SQL Server 2005或更高版本,则可以使用row_number()函数:

Using ROW_NUMBER() to paginate your data with SQL Server 2005 and ASP.NET

但正如Billy评论的那样,这不是一般的SQL函数。

游标是一种非常糟糕的方法,特别是如果您正在执行断开连接的查询,例如用户正在翻阅结果。

如果您使用旧的SQL Server然后使用2005,或者您正在寻找通用方法,那么通常的方法是将结果选择到具有身份索引的临时表中,然后从该表中选择索引> = pagenumber * pageSize&&指数< (pagenumber * pageSize)+ pageSize