SQL Server的几种分页方法

admin 发布时间:2015-02-03 分类:.NET 阅读:4811次 添加评论

程序中经常要用到分页的方式来展现数据,不然一次性展示所有的数据不仅加载速度过慢,也会加重服务器及数据库的负担,占用不必要的服务器资源。程序中可以使用aspnetpager等分页控件来展示数据,也可以在数据库方面来查询分页。下面介绍SQL查询时候用到的分页查询方法。

方法一:通过Id或者排序号NOT IN进行分页

SELECT TOP 10 *
FROM 表名 WHERE id NOT IN
          (
          SELECT TOP 10 *(页数-1) id FROM 表名 ORDER BY id
          )
ORDER BY id

方法二:通过ID筛选

SELECT TOP 10 *
FROM 表名 
WHERE id >
          (
          SELECT ISNULL(MAX(id),0) 
          FROM 
                (
                SELECT TOP 10 *(页数-1) id FROM 表名 ORDER BY id
                ) a
          )
ORDER BY id

方法三:通过SQL Server 2005函数ROW_NUMBER生成带序列号的表来分页

SELECT TOP 10 * 
FROM 
        (
        SELECT ROW_NUMBER() OVER (partition by classid ORDER BY id) AS rank,* FROM 表名
        ) A
WHERE rank> 页大小*(页数-1)

通过classid分类,id排序。

其中使用ROW_NUMBER分页的效率最高。

关键字词: SQLSQL Server分页

暂无留言

发表评论:

◎欢迎您的参与讨论。