这个在SQL2005之后最见的一种分页方式,也是Linq默认生成的执行分页的方法(skip,take),当然在性能上小数量没有问题,在数据达到百万时会很慢,这是我们要清楚的,有时我们在LINQ环境下也需要分页写SQL,这时如何去分布就成为了一个很不好处
理的问题,所以大叔还是把准备的分页代码贡献一下
DECLARE @pageSize INT ; DECLARE @pageIndex INT ; SET @pageSize = 5 SET @pageIndex =2 ; --第二页,每页显示5条数据 SELECT * FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY CreateDate ASC ) AS 'rowNumber' , * FROM dbo.Task_Info ) AS temp WHERE rowNumber BETWEEN ( ( ( @pageIndex - 1 ) * @pageSize ) + 1 ) AND ( @pageIndex * @pageSize )
在LINQ环境下使用SQL代码如下
Db.Database.SqlQuery<FighterTaskTotalDTO>("你的代码")
结果
本文转自博客园张占岭(仓储大叔)的博客,原文链接:知方可补不足~sqlserver中使用ROW_NUMBER进行的快速分页,如需转载请自行联系原博主。