中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 數據庫 > 
  • SQL Server存儲過程中怎么同時返回分頁結果集和總數

SQL Server存儲過程中怎么同時返回分頁結果集和總數

發布時間:2021-08-05 14:43:13 來源:億速云 閱讀:518 作者:Leah 欄目:數據庫

這期內容當中小編將會給大家帶來有關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存儲過程中怎么同時返回分頁結果集和總數了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南安市| 德格县| 驻马店市| 铁岭市| 崇阳县| 吉隆县| 汉沽区| 宁海县| 兴山县| 泰和县| 吉安县| 南皮县| 多伦县| 湟源县| 渭南市| 绥宁县| 搜索| 安乡县| 无极县| 平利县| 象山县| 邮箱| 萍乡市| 临潭县| 依安县| 河池市| 博野县| 东城区| 滨州市| 阳谷县| 孟州市| 祁阳县| 永兴县| 商都县| 石林| 洛扎县| 孝义市| 津南区| 禄丰县| 舒城县| 台北县|