使用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,这样可以提高效率。
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,这样可以提高效率。