码迷,mamicode.com
首页 > 数据库 > 详细

SqlServer 常用分页方法总结

时间:2014-06-11 06:47:09      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:sqlserver   分页   

SqlServer 常用分页方法总结

下面示例总结了,SqlServer数据库 常用分页方法,仅供学习参考

A、 使用 RowNumber 和 Between And 组合分页:

/********** 使用 RowNumber 和 Between And 组合分页 **********/
CREATE PROC proc_FuzzySearchAndPaging
@pageIndex int,           --页索引
@pageSize int,            --页大小
@SearchKey Nvarchar(10),  --查询关键字
@TotalCount int OutPut    --总数据条数
AS
  BEGIN
       --查询 当前页 数据
       SELECT * FROM(
           SELECT *,[NO]=ROW_NUMBER() OVER(ORDER BY s.s_id DESC) FROM StuInfo s
                  WHERE s.s_name Like('%'+@SearchKey+'%')
       ) t 
       WHERE t.[NO] BETWEEN @pageSize*(@pageIndex-1)+1 AND @pageIndex*@pageSize
       ORDER BY t.s_id DESC
       
       --总数据条数
       SELECT @TotalCount = COUNT(*) FROM StuInfo s WHERE s.s_name Like('%'+@SearchKey+'%')
  END
GO

B、使用 TOP 和 NOT IN 组合分页:

/********** 使用 TOP 和 NOT IN 组合分页 **********/
CREATE PROC proc_FuzzySearchAndPaging2
@PageIndex int,             --当前页索引
@PageSize int,              --每页显示的数据条数
@FuzzyKey Nvarchar(20),     --模糊匹配的关键字
@Count int OUTPUT           --总数据条数(用来判断要分多少页)
AS
  BEGIN
      SELECT TOP(@PageSize) * FROM StuInfo s
			  WHERE s.s_name LIKE('%'+@FuzzyKey+'%')
			  AND s.s_id NOT IN(
			      SELECT TOP((@PageIndex-1)*@PageSize) s.s_id FROM StuInfo s
			             WHERE s.s_name LIKE('%'+@FuzzyKey+'%')
			             ORDER BY s.s_id ASC
			  )
			  ORDER BY s.s_id ASC
			  
     --总数据条数
     SELECT @Count=COUNT(*) FROM StuInfo s WHERE s.s_name LIKE('%'+@FuzzyKey+'%') 
  END
GO

如有,更好方法 方法欢迎拿出来分享!


扩充:分页时,可以充分借助 临时表 和  WITH AS 语句提供查询速度

WITH AS语句示例:

DECLARE @SearchKey Nvarchar(10)  --查询关键字
WITH t AS(
      SELECT * FROM StuInfo s
             WHERE s.s_name Like('%'+@SearchKey+'%')
)


临时表 语句示例:

DECLARE @SearchKey Nvarchar(10)  --查询关键字
SELECT * INTO #temp2 FROM (
       SELECT * FROM StuInfo s WHERE s.s_name Like('%'+@SearchKey+'%')
) u

SqlServer 常用分页方法总结,布布扣,bubuko.com

SqlServer 常用分页方法总结

标签:sqlserver   分页   

原文地址:http://blog.csdn.net/yimiyuangguang/article/details/29382605

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!