SQL Server存储过程中怎么同时返回分页结果集和总数
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这期内容当中小编将会给大家带来有关SQL Server存储过程中怎么同时返回分页结果集和总数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、内核层,通常也就是要查
千家信息网最后更新 2025年01月22日SQL Server存储过程中怎么同时返回分页结果集和总数
这期内容当中小编将会给大家带来有关SQL Server存储过程中怎么同时返回分页结果集和总数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
1、内核层,通常也就是要查询的字段或者要计算的字段,这部分单独拿出来。
2、查询条件层。 如果内核只是查询一些字段的话,条件可以放在查询条件层拼接。 如果内核层完全是统计业务逻辑,那么查询条件则必须要放在内核层,像我们常用的SUM、GROUPBY 业务。
3、添加分页参数(也就是我们现在多数用的ROW_NUMBER添加rn参数)。 存储过程里我们一般会单独声明每个部分的变量用于执行时拼接。
存储过程
CREATE proc [dbo].[usp_manyidu]( @seatno nvarchar(30), @pageIndex int, @pageSize int, @rsCount int out)asbegin declare @sql nvarchar(max) --拼接内核SQL declare @where nvarchar(max)=' where 1=1' --查询条件拼接字符串 declare @cols nvarchar(max) --查询字段、计算字段 declare @sort nvarchar(50) --排序 set @sql=' from dbo.log where seatno is not null and seatno<>'''' group by seatno ' set @cols='seatno,SUM(case when manyidu=0 then 1 else 0 end) as manyi, SUM(case when manyidu=1 then 1 else 0 end) as yiban, SUM(case when manyidu=2 then 1 else 0 end) as bumanyi, SUM(case when manyidu IS null or manyidu='''' then 1 else 0 end) as weipingjia' set @sort='order by seatno' if(@seatno <>'') set @where+=' and seatno='+@seatno declare @strSQL nvarchar(max) set @strSQL=N'select * from (select ROW_NUMBER() over('+@sort+') as tmpid,* from( select * from (select '+@cols+@sql+') as tmpTable1'+@where+') as tmpTable2) as tmpTable3' +' where tmpid between '+STR((@pageIndex-1)*@pageSize+1)+' and '+STR(@pageIndex*@pageSize) print @strSQL exec(@strSQL) set @strSQL='select @total=count(*) from (select '+@cols+@sql+') as tmpTable'+@where print @strSQL exec sp_executesql @strSQL,N'@total int out',@total=@rsCount out endGO
上述就是小编为大家分享的SQL Server存储过程中怎么同时返回分页结果集和总数了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
查询
内核
字段
条件
过程
存储
同时
总数
结果
业务
也就是
内容
参数
分析
专业
中小
内容丰富
变量
只是
字符
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
怎么保存图片的数据库中
数据库太大怎么删除
如何加强web服务器的安全
crt如何登录mysql数据库
国家网络安全教育宣传活动
海南专业应用软件开发
长宁区现代化软件开发注意事项
互联网推动科技创新的例子
生产企业网络安全管理措施
网络安全第一议题
遥控车用什么软件开发
服务器 开关机
财务专用服务器
pg数据库冷备份
缘之城服务器
更改数据库实例目录
数据库给什么数据创建索引
一个数据库两个实例状态
石嘴山展厅互动软件开发
网络安全手抄报术语
网络技术员实习周记
三大农业数据库
csgo服务器添加管理员
数据库范式的判断例题
腾讯云服务器到底安不安全
数据库唯一键和主键的关系
嘉兴构建智慧医院软件开发
怎么登陆服务器管理底层
数据库中物理删除空白记录
华硕服务器2008系统安装步骤