星空网 > 软件开发 > 数据库

SQL SERVER 通用分页存储过程,两种用法任你选

写在前面

        从SQLSERVER 2005开始,提供了Row_Number()函数,利用函数生成的Index来处理分页,按照正常的逻辑思维都是传pageIndex和pageSize来完成分页,昨天前端和我沟通,他们使用jQuery.DataTable.js插件,而且经过了公司底层的封装,pageIndex需要变动一下,变成pageIndex*pageSize来传。 也就是说按每页显示30条算,第一次传0,第二次传30这样来计算,我也是醉了。

 

1、传pageIndex和pageSize

CREATE PROC [dbo].[Common_PageList](@tab nvarchar(max),---表名@strFld nvarchar(max), --字段字符串@strWhere varchar(max), --where条件 @PageIndex int, --页码@PageSize int, --每页容纳的记录数@Sort VARCHAR(255), --排序字段及规则,不用加order by@IsGetCount bit --是否得到记录总数,1为得到记录总数,0为不得到记录总数,返回记录集)ASdeclare @strSql nvarchar(max)set nocount on;if(@IsGetCount = 1)begin set @strSql='SELECT COUNT(0) FROM ' + @tab + ' WHERE ' + @strWhereendelsebegin set @strSql=' SELECT * FROM (SELECT ROW_NUMBER()  OVER(ORDER BY ' + @Sort + ') AS rownum, ' + @strFld + ' FROM ' + @tab + ' where ' + @strWhere + ') AS Dwhere WHERE rownum BETWEEN ' + CAST(((@PageIndex-1)*@PageSize + 1) as nvarchar(20)) + ' and ' + cast((@PageIndex*@PageSize) as nvarchar(20))endexec (@strSql)set nocount off;

 

2、传pageIndex*pageSize和pageSize

CREATE PROC [dbo].[Common_PageList2](@tab nvarchar(max),---表名@strFld nvarchar(max), --字段字符串@strWhere varchar(max), --where条件 @StartIndex int, -- 开始行数@PageSize int, --每页容纳的记录数@Sort VARCHAR(255), --排序字段及规则,不用加order by@IsGetCount bit --是否得到记录总数,1为得到记录总数,0为不得到记录总数,返回记录集)ASDECLARE @strSql NVARCHAR(max)SET NOCOUNT ON;IF(@IsGetCount = 1)BEGIN SET @strSql='SELECT COUNT(0) FROM ' + @tab + ' WHERE ' + @strWhereENDELSEBEGIN DECLARE @ENDINDEX INT IF(@StartIndex>0)  BEGIN   SET @ENDINDEX=@StartIndex+@PageSize   SET @StartIndex=@StartIndex+1  END ELSE  SET @ENDINDEX=@StartIndex+@PageSize     SET @strSql=' SELECT * FROM (SELECT ROW_NUMBER()  OVER(ORDER BY ' + @Sort + ') AS rownum, ' + @strFld + ' FROM ' + @tab + ' where ' + @strWhere + ') AS Dwhere WHERE rownum BETWEEN ' + CAST(@StartIndex AS VARCHAR(30)) + ' and ' + CAST(@ENDINDEX AS VARCHAR(30))endexec (@strSql)SET NOCOUNT OFF;

 




原标题:SQL SERVER 通用分页存储过程,两种用法任你选

关键词:sql

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

光伏智能清扫机器人「仁洁智能」完成超亿元A轮融资:https://www.kjdsnews.com/a/1723974.html
Temu平台欧盟化学品法规(REACH)-限用物质合规解读:https://www.kjdsnews.com/a/1723975.html
Wayfair再爆裁员:美国市场开年分析:https://www.kjdsnews.com/a/1723976.html
12月Meesho用户数量增长32%!超越亚马逊和Flipkart!:https://www.kjdsnews.com/a/1723977.html
【今日分享】专利优先审查相关内容:https://www.kjdsnews.com/a/1723978.html
一篇文章带你了解商标注册:智利:https://www.kjdsnews.com/a/1723979.html
咸阳机场到临潼景点 西安咸阳机场到临潼有多远:https://www.vstour.cn/a/411236.html
合肥有什么约会的地方好玩的地方 合肥哪里适合情侣好玩的地方:https://www.vstour.cn/a/411237.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流