最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL Server存儲(chǔ)過(guò)程同時(shí)返回分頁(yè)結(jié)果集和總數(shù)

 更新時(shí)間:2017年01月16日 15:50:09   作者:garfieldzf  
這篇文章主要為大家詳細(xì)介紹了SQL Server存儲(chǔ)過(guò)程同時(shí)返回分頁(yè)結(jié)果集和總數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

      好長(zhǎng)時(shí)間沒(méi)摸數(shù)據(jù)庫(kù)了,周末在家寫了個(gè)報(bào)表的存儲(chǔ)過(guò)程,一時(shí)間對(duì)使用存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)的同時(shí)并計(jì)算出記錄總數(shù)不知道怎么更好的去實(shí)現(xiàn)。按照我們正常的業(yè)務(wù)邏輯,存儲(chǔ)過(guò)程數(shù)據(jù)首先是分頁(yè),其次接受若干查詢條件,返回分頁(yè)結(jié)果集的同時(shí)還需要返回記錄總數(shù)給客戶端。

      我對(duì)于這樣一個(gè)業(yè)務(wù)存儲(chǔ)過(guò)程總結(jié)如下:1、內(nèi)核層,通常也就是要查詢的字段或者要計(jì)算的字段,這部分單獨(dú)拿出來(lái)。  2、查詢條件層。 如果內(nèi)核只是查詢一些字段的話,條件可以放在查詢條件層拼接。 如果內(nèi)核層完全是統(tǒng)計(jì)業(yè)務(wù)邏輯,那么查詢條件則必須要放在內(nèi)核層,像我們常用的SUM、GROUPBY 業(yè)務(wù)。 3、添加分頁(yè)參數(shù)(也就是我們現(xiàn)在多數(shù)用的ROW_NUMBER添加rn參數(shù))。   存儲(chǔ)過(guò)程里我們一般會(huì)單獨(dú)聲明每個(gè)部分的變量用于執(zhí)行時(shí)拼接。

存儲(chǔ)過(guò)程

CREATE proc [dbo].[usp_manyidu]
(
 @seatno nvarchar(30),
 @pageIndex int,
 @pageSize int,
 @rsCount int out
)
as
begin
 declare @sql nvarchar(max)  --拼接內(nèi)核SQL
 declare @where nvarchar(max)=' where 1=1' --查詢條件拼接字符串
 declare @cols nvarchar(max)  --查詢字段、計(jì)算字段
 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
  
   
end
GO

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • sqlldr裝載數(shù)據(jù)實(shí)現(xiàn)代碼

    sqlldr裝載數(shù)據(jù)實(shí)現(xiàn)代碼

    本文將詳細(xì)介紹如何用sqlldr裝載數(shù),需要了解更多的朋友可以參考下
    2012-12-12
  • SQL語(yǔ)句性能優(yōu)化(續(xù))

    SQL語(yǔ)句性能優(yōu)化(續(xù))

    這篇文章主要介紹了SQL語(yǔ)句性能優(yōu)化(續(xù)),設(shè)計(jì)到性能優(yōu)化相關(guān)知識(shí),本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-03-03
  • hive中將string數(shù)據(jù)轉(zhuǎn)為bigint的操作

    hive中將string數(shù)據(jù)轉(zhuǎn)為bigint的操作

    這篇文章主要介紹了hive中將string數(shù)據(jù)轉(zhuǎn)為bigint的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • sql server數(shù)據(jù)庫(kù)高可用日志傳送的方法

    sql server數(shù)據(jù)庫(kù)高可用日志傳送的方法

    SQL Server 使用日志傳送,您可以自動(dòng)將“主服務(wù)器”實(shí)例上“主數(shù)據(jù)庫(kù)”內(nèi)的事務(wù)日志備份發(fā)送到單獨(dú)“輔助服務(wù)器”實(shí)例上的一個(gè)或多個(gè)“輔助數(shù)據(jù)庫(kù)”,下面這篇文章主要給大家介紹了關(guān)于sql server數(shù)據(jù)庫(kù)高可用日志傳送的相關(guān)資料,需要的朋友可以參考下
    2018-05-05
  • SQL查詢語(yǔ)句求出用戶的連續(xù)登陸天數(shù)

    SQL查詢語(yǔ)句求出用戶的連續(xù)登陸天數(shù)

    這篇文章主要是SQl語(yǔ)句的練習(xí),本文教大家如何用SQL查詢語(yǔ)句求出用戶的連續(xù)登陸天數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • SQLServer數(shù)據(jù)庫(kù)中開(kāi)啟CDC導(dǎo)致事務(wù)日志空間被占滿的原因

    SQLServer數(shù)據(jù)庫(kù)中開(kāi)啟CDC導(dǎo)致事務(wù)日志空間被占滿的原因

    這篇文章主要介紹了SQLServer數(shù)據(jù)庫(kù)中開(kāi)啟CDC導(dǎo)致事務(wù)日志空間被占滿的原因分析和解決辦法(REPLICATION),需要的朋友可以參考下
    2017-04-04
  • master數(shù)據(jù)庫(kù)損壞的解決辦法有哪些

    master數(shù)據(jù)庫(kù)損壞的解決辦法有哪些

    由于sqlserver 2008 master數(shù)據(jù)庫(kù)損壞導(dǎo)致sqlserver服務(wù)啟動(dòng)失敗,本文給大家master數(shù)據(jù)庫(kù)損壞的解決辦法,感興趣的朋友一起參考下
    2015-10-10
  • 如何有效防止sql注入的方法

    如何有效防止sql注入的方法

    SQL注入攻擊是黑客對(duì)數(shù)據(jù)庫(kù)進(jìn)行攻擊常用的手段之一,本文主要介紹了如何如何有效防止sql注入,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • sql server排查死鎖優(yōu)化性能

    sql server排查死鎖優(yōu)化性能

    這篇文章介紹了sql server排查死鎖優(yōu)化性能的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • SQL文本提取/截取的四種方式

    SQL文本提取/截取的四種方式

    本文主要介紹了SQL文本提取/截取的四種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08

最新評(píng)論

临沂市| 汽车| 怀宁县| 武隆县| 太和县| 纳雍县| 育儿| 壶关县| 仙居县| 临猗县| 安达市| 东平县| 肥城市| 靖安县| 乐业县| 林州市| 清流县| 亳州市| 格尔木市| 白朗县| 定结县| 罗定市| 仙游县| 云南省| 金山区| 常德市| 陈巴尔虎旗| 民勤县| 黔江区| 甘南县| 民丰县| 全椒县| 麻江县| 通州区| 华蓥市| 马公市| 湖南省| 积石山| 黄梅县| 盘锦市| 大田县|