如何逐页获取数据并对列进行排序

时间:2010-12-30 20:33:38

标签: sql-server

如何创建SP,使用它我可以获得结果页面虎钳。我想将pageSize,pageNo,sortCol和direction传递给SP,并希望根据此信息获得结果。我可以在SP的逻辑中处理这个吗?

Table1 { First, Last, Location }

SP_GetAll(pageNo=3, pageSize=10, sortCol="First", direction="ASC")

SQL Server 2008为此提供了哪些新功能?

1 个答案:

答案 0 :(得分:1)

您可能会发现内联表值函数(TVF)比sproc更适合这种情况。原因是结果可以参与其他查询。

在select语句的开头,包含以下内容:

SELECT  TOP (100) PERCENT ROW_NUMBER() OVER (ORDER BY ...

在select语句的末尾,输入以下内容:

WHERE   (Table.rowNo BETWEEN (@pageNumber - 1) * @pageSize + 1 
         AND @pageNumber * @pageSize)

如果数据集很大(或您的查询复杂),请考虑将结果假脱机到临时表并在临时表中进行分页。