使用ROW_NUMBER()的分页存储过程

使用ROW_NUMBER()的分页存储过程,第1张

概述使用ROW_NUMBER()的分页存储过程

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

分页存储过程,可以直接通过传入表名进行分页的,用到了ROW_NUMBER()函数,所以只适用于MSsql2005以上.sql代码  -- Description: 分页,用到了ROW_NUMBER() -- ============================================= create PROCEDURE [dbo].[proc_ShowPage] @tblname   varchar(255),-- 表名 @strGetFIElds varchar(1000) = '*',-- 需要返回的列,默认* @strOrder varchar(255)='',-- 排序的字段名,必填 @strOrderType varchar(10)='ASC',-- 排序的方式,默认ASC @PageSize   int = 10,-- 页尺寸,默认10 @PageIndex int = 1,-- 页码,默认1 @strWhere varchar(1500) = '' -- 查询条件 (注意: 不要加 where) AS    declare @strsql   varchar(5000)    if @strWhere !='' set @strWhere=' where '[email protected]    set @strsql= 'SELECT * FROM ('+     'SELECT ROW_NUMBER() OVER (ORDER BY '[email protected]+' '[email protected]+') AS pos,'[email protected]+' '+     'FROM '[email protected]+' '[email protected]+ ') AS sp WHERE pos BETWEEN '+str((@PageIndex-1)*@PageSize+1)+' AND '+str(@PageIndex*@PageSize)    exec (@strsql)   下面是调用的示例,这里可以采用join连接EXEC    [proc_ShowPage]         @tblname = N'(project p inner join projectca ca on p.caID=ca.ID)',@strGetFIElds = N'p.Title,ca.caname',@strOrder = N'p.ID',@strOrderType = N'desc',@PageSize = 12,@PageIndex = 1,@strWhere = N'' 

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的使用ROW_NUMBER()的分页存储过程全部内容,希望文章能够帮你解决使用ROW_NUMBER()的分页存储过程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1164812.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存