简单的SQLserver分页方法

使用SQLserver端的分页方法,以前一般采用如下方法:
SELECT *
FROM   ( SELECT Top N *
           FROM   (SELECT Top (M + N - 1) *
                     FROM 表名称 Order by 主键 desc
                   ) t1
        ) t2
Order by 主键 asc
一次倒序一次顺序来获取。

从SQL2005开始有了类似Oracle的row_number功能:

SELECT *
FROM   ( SELECT TOP 100 ROW_NUMBER() over (order by 字段) as rowNum, *
            FROM 表名称
       ) as tmp
where 10<rowNum and rowNum<= 20
这样就行了。

同时也可以将该表做成VIEW,其中包括rowNum,这样可以提高效率。

猜你喜欢

转载自seige.iteye.com/blog/1495032