校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 2分法分頁存儲過程腳本實例

2分法分頁存儲過程腳本實例

熱門標簽:競圣地圖標注服務 智能外呼系統需要多少錢 安陽天音防封電銷卡 衛星地圖標注距離 外呼系統的話術 貴州外呼回撥系統是什么 云南全自動外呼系統公司 陽光創信ai外呼獲客系統助力 智能語音車載電話機器人

需要說明的是:這個存儲過程參數比較多,我再實際使用中又在外面單獨寫了一個類,頁面調用直接調用封裝的類,方法有很多,主要是思路,大家可以參考下。

代碼修改集中在類似

復制代碼 代碼如下:

if @Sort=0
set @strTmp = @strTmp + '(select min('
 else
set @strTmp = @strTmp + '>(select max('

另外94行主要是配合我自己寫的類,顯示記錄條數分頁數等信息,如果不需要就去掉。

復制代碼 代碼如下:

  1ALTER PROCEDURE [dbo].[proc_ListPage]
  2(
  3 @tblName     nvarchar(200),        ----要顯示的表或多個表的連接
  4 @fldName     nvarchar(500) = '*',    ----要顯示的字段列表
  5 @pageSize    int = 10,        ----每頁顯示的記錄個數
  6 @page        int = 1,        ----要顯示那一頁的記錄
  7 @fldSort    nvarchar(200) = null,    ----排序字段列表或條件
  8 @Sort        bit = 0,        ----排序方法,0為升序,1為降序(如果是多字段排列Sort指代最后一個排序字段的排列順序(最后一個排序字段不加排序標記)--程序傳參如:' SortA Asc,SortB Desc,SortC ')
  9 @strCondition    nvarchar(1000) = null,    ----查詢條件,不需where
 10 @ID        nvarchar(150),        ----主表的主鍵
 11 @Dist      bit = 0,           ----是否添加查詢字段的 DISTINCT 默認0不添加/1添加
 12 @pageCount    int = 1 output,            ----查詢結果分頁后的總頁數
 13 @Counts    int = 1 output                ----查詢到的記錄數
 14 )
 15 AS
 16 SET NOCOUNT ON
 17 Declare @sqlTmp nvarchar(1000)        ----存放動態生成的SQL語句
 18 Declare @strTmp nvarchar(1000)        ----存放取得查詢結果總數的查詢語句
 19 Declare @strID     nvarchar(1000)        ----存放取得查詢開頭或結尾ID的查詢語句
 20
 21 Declare @strSortType nvarchar(10)    ----數據排序規則A
 22 Declare @strFSortType nvarchar(10)    ----數據排序規則B
 23
 24 Declare @SqlSelect nvarchar(50)         ----對含有DISTINCT的查詢進行SQL構造
 25 Declare @SqlCounts nvarchar(50)          ----對含有DISTINCT的總數查詢進行SQL構造
 26
 27
 28 if @Dist  = 0
 29 begin
 30     set @SqlSelect = 'select '
 31     set @SqlCounts = 'Count(0)'
 32 end
 33 else
 34 begin
 35     set @SqlSelect = 'select distinct '
 36     set @SqlCounts = 'Count(DISTINCT '+@ID+')'
 37 end
 38
 39
 40 if @Sort=0
 41 begin
 42     set @strFSortType=' ASC '
 43     set @strSortType=' DESC '
 44 end
 45 else
 46 begin
 47     set @strFSortType=' DESC '
 48     set @strSortType=' ASC '
 49 end
 50
 51
 52
 53 --------生成查詢語句--------
 54 --此處@strTmp為取得查詢結果數量的語句
 55 if @strCondition is null or @strCondition=''     --沒有設置顯示條件
 56 begin
 57     set @sqlTmp =  @fldName + ' From ' + @tblName
 58     set @strTmp = @SqlSelect+' @Counts='+@SqlCounts+' FROM '+@tblName
 59     set @strID = ' From ' + @tblName
 60 end
 61 else
 62 begin
 63     set @sqlTmp = + @fldName + 'From ' + @tblName + ' where (1>0) ' + @strCondition
 64     set @strTmp = @SqlSelect+' @Counts='+@SqlCounts+' FROM '+@tblName + ' where (1>0) ' + @strCondition
 65     set @strID = ' From ' + @tblName + ' where (1>0) ' + @strCondition
 66 end
 67
 68 ----取得查詢結果總數量-----
 69 exec sp_executesql @strTmp,N'@Counts int out ',@Counts out
 70 declare @tmpCounts int
 71 if @Counts = 0
 72     set @tmpCounts = 1
 73 else
 74     set @tmpCounts = @Counts
 75
 76     --取得分頁總數
 77     set @pageCount=(@tmpCounts+@pageSize-1)/@pageSize
 78
 79     /**//**當前頁大于總頁數 取最后一頁**/
 80     if @page>@pageCount
 81         set @page=@pageCount
 82
 83     --/*-----數據分頁2分處理-------*/
 84     declare @pageIndex int --總數/頁大小
 85     declare @lastcount int --總數%頁大小
 86
 87     set @pageIndex = @tmpCounts/@pageSize
 88     set @lastcount = @tmpCounts%@pageSize
 89     if @lastcount > 0
 90         set @pageIndex = @pageIndex + 1
 91     else
 92         set @lastcount = @pagesize
 93
 94 --為配合顯示
 95 set nocount off
 96 select @page curpage,@pageSize pagesize,@pageCount countpage,@tmpCounts [Rowcount]
 97 set nocount on
 98
 99  --//***顯示分頁
100     if @strCondition is null or @strCondition=''     --沒有設置顯示條件
101     begin
102         if @pageIndex2 or @page=@pageIndex / 2 + @pageIndex % 2   --前半部分數據處理
103             begin
104                 if @page=1
105                     set @strTmp=@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(40))+' '+ @fldName+' from '+@tblName                       
106                         +' order by '+ @fldSort +' '+ @strFSortType
107                 else
108                 begin                   
109                     set @strTmp=@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(40))+' '+ @fldName+' from '+@tblName
110                         +' where '+@ID
111                     if @Sort=0
112                        set @strTmp = @strTmp + '>(select max('
113                     else
114                        set @strTmp = @strTmp + '(select min('
115                     set @strTmp = @strTmp + @ID +') from ('+ @SqlSelect+' top '+ CAST(@pageSize*(@page-1) as Varchar(20)) +' '+ @ID +' from '+@tblName
116                         +' order by '+ @fldSort +' '+ @strFSortType+') AS TBMinID)'
117                         +' order by '+ @fldSort +' '+ @strFSortType
118                 end   
119             end
120         else
121            
122             begin
123             set @page = @pageIndex-@page+1 --后半部分數據處理
124                 if @page = 1 --最后一頁數據顯示           
125                     set @strTmp=@SqlSelect+' * from ('+@SqlSelect+' top '+ CAST(@lastcount as VARCHAR(40))+' '+ @fldName+' from '+@tblName
126                         +' order by '+ @fldSort +' '+ @strSortType+') AS TempTB'+' order by '+ @fldSort +' '+ @strFSortType
127                 else
128                     begin
129                     set @strTmp=@SqlSelect+' * from ('+@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(40))+' '+ @fldName+' from '+@tblName
130                         +' where '+@ID
131                         if @Sort=0
132                            set @strTmp=@strTmp+' (select min('
133                         else
134                            set @strTmp=@strTmp+' >(select max('
135  set @strTmp=@strTmp+ @ID +') from('+ @SqlSelect+' top '+ CAST(@pageSize*(@page-2)+@lastcount as Varchar(20)) +' '+ @ID +' from '+@tblName
136                         +' order by '+ @fldSort +' '+ @strSortType+') AS TBMaxID)'
137                         +' order by '+ @fldSort +' '+ @strSortType+') AS TempTB'+' order by '+ @fldSort +' '+ @strFSortType
138                    end
139             end
140
141     end
142
143     else --有查詢條件
144     begin
145         if @pageIndex2 or @page=@pageIndex / 2 + @pageIndex % 2   --前半部分數據處理
146         begin
147                 if @page=1
148                     set @strTmp=@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(40))+' '+ @fldName+' from '+@tblName                       
149                         +' where 1=1 ' + @strCondition + ' order by '+ @fldSort +' '+ @strFSortType
150                 else
151                 begin                   
152                     set @strTmp=@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(40))+' '+ @fldName+' from '+@tblName
153                         +' where '+@ID
154                     if @Sort=0
155                        set @strTmp = @strTmp + '>(select max('
156                     else
157                        set @strTmp = @strTmp + '(select min('
158
159                  set @strTmp = @strTmp + @ID +') from ('+ @SqlSelect+' top '+ CAST(@pageSize*(@page-1) as Varchar(20)) +' '+ @ID +' from '+@tblName
160                         +' where (1=1) ' + @strCondition +' order by '+ @fldSort +' '+ @strFSortType+') AS TBMinID)'
161                         +' '+ @strCondition +' order by '+ @fldSort +' '+ @strFSortType
162                 end           
163         end
164         else
165         begin
166             set @page = @pageIndex-@page+1 --后半部分數據處理
167             if @page = 1 --最后一頁數據顯示
168                     set @strTmp=@SqlSelect+' * from ('+@SqlSelect+' top '+ CAST(@lastcount as VARCHAR(40))+' '+ @fldName+' from '+@tblName
169                         +' where (1=1) '+ @strCondition +' order by '+ @fldSort +' '+ @strSortType+') AS TempTB'+' order by '+ @fldSort +' '+ @strFSortType                    
170             else
171                   begin
172                     set @strTmp=@SqlSelect+' * from ('+@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(40))+' '+ @fldName+' from '+@tblName
173                         +' where '+@ID
174                     if @Sort=0
175                        set @strTmp = @strTmp + '(select min('
176                     else
177                        set @strTmp = @strTmp + '>(select max('
178                set @strTmp = @strTmp + @ID +') from('+ @SqlSelect+' top '+ CAST(@pageSize*(@page-2)+@lastcount as Varchar(20)) +' '+ @ID +' from '+@tblName
179                         +' where (1=1) '+ @strCondition +' order by '+ @fldSort +' '+ @strSortType+') AS TBMaxID)'
180                         +' '+ @strCondition+' order by '+ @fldSort +' '+ @strSortType+') AS TempTB'+' order by '+ @fldSort +' '+ @strFSortType 
181                  end             
182         end   
183  
184     end
185
186 ------返回查詢結果-----
187 SET NOCOUNT off
188 exec sp_executesql @strTmp
189 print @strTmp

您可能感興趣的文章:
  • 深入sql server 2005 萬能分頁存儲過程的詳解
  • 基于Sql Server通用分頁存儲過程的解決方法
  • SQL Server 2005通用分頁存儲過程及多表聯接應用
  • 針對SQL 2000 的分頁存儲過程代碼分享
  • 分頁存儲過程(三)在sqlserver中打造更加準確的分頁結果
  • 分頁存儲過程(二)在sqlserver中返回更加準確的分頁結果
  • sqlserver 千萬數量級分頁存儲過程代碼

標簽:鄂爾多斯 營口 周口 寧夏 欽州 河源 預約服務 湘潭

巨人網絡通訊聲明:本文標題《2分法分頁存儲過程腳本實例》,本文關鍵詞  分法,分頁,存儲,過程,腳本,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《2分法分頁存儲過程腳本實例》相關的同類信息!
  • 本頁收集關于2分法分頁存儲過程腳本實例的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    亚洲另类在线视频| 精品国产一区二区三区不卡| 亚洲精品中文在线| 一本一道久久a久久精品综合蜜臀| 亚洲精品v日韩精品| 欧美日韩性生活| 精品一区二区免费在线观看| 中文字幕第一区| 91成人在线免费观看| 日本不卡视频一二三区| 久久久噜噜噜久久人人看 | 久久丁香综合五月国产三级网站| 久久综合九色综合欧美亚洲| 成人午夜短视频| 亚洲一区二区av电影| 精品少妇一区二区三区在线视频| 国产精品一区二区在线看| 中文字幕五月欧美| 欧美一区二区在线观看| 高清免费成人av| 亚洲第四色夜色| 国产丝袜在线精品| 在线日韩av片| 国产精品一卡二卡在线观看| 一区二区三区在线播| 欧美一区二区三区人| 懂色中文一区二区在线播放| 亚洲成人av在线电影| 国产亚洲va综合人人澡精品| 欧美亚洲一区二区在线| 国产乱码精品一区二区三区忘忧草| 亚洲老司机在线| 26uuu欧美日本| 91国偷自产一区二区开放时间| 精品一区二区久久久| 一区二区三区视频在线观看| 精品少妇一区二区三区在线播放| 色先锋aa成人| 国产高清成人在线| 视频一区中文字幕| 中文字幕亚洲精品在线观看| 欧美v亚洲v综合ⅴ国产v| 色婷婷激情综合| 国产成人在线免费| 日韩激情视频网站| 亚洲精品中文在线影院| 久久久精品国产免大香伊 | 美洲天堂一区二卡三卡四卡视频 | 日韩黄色一级片| 亚洲综合无码一区二区| 久久精品人人做| 日韩欧美国产系列| 欧美日韩www| 91社区在线播放| 从欧美一区二区三区| 激情欧美一区二区| 日韩在线播放一区二区| 亚洲欧美电影一区二区| 国产精品视频免费| 国产偷国产偷精品高清尤物| 日韩精品一区二区三区中文精品| 欧美亚洲国产bt| 91成人网在线| 在线中文字幕一区| 日本丶国产丶欧美色综合| youjizz国产精品| 成人免费观看男女羞羞视频| 国产成人av一区二区三区在线观看| 日本人妖一区二区| 日韩电影一区二区三区四区| 日韩国产在线一| 五月天一区二区三区| 亚洲国产日韩av| 性欧美疯狂xxxxbbbb| 亚洲一区视频在线| 亚洲午夜久久久久久久久电影院| 一区二区三区日韩欧美精品| 亚洲韩国一区二区三区| 亚洲国产精品一区二区www在线| 亚洲一区在线观看视频| 亚洲国产精品久久久男人的天堂| 亚洲午夜激情网页| 亚洲图片欧美色图| 日韩电影免费在线观看网站| 免费视频一区二区| 精品一区二区三区av| 国产精品中文欧美| eeuss鲁片一区二区三区在线看| 不卡一区二区在线| 日本精品视频一区二区三区| 欧美日韩国产高清一区二区| 日韩欧美成人激情| 国产欧美va欧美不卡在线| 国产精品盗摄一区二区三区| 伊人婷婷欧美激情| 亚洲超碰97人人做人人爱| 青青草一区二区三区| 九九视频精品免费| aaa亚洲精品| 欧美欧美欧美欧美首页| 日韩精品专区在线| 国产精品热久久久久夜色精品三区 | 国产精品国产三级国产aⅴ入口| 亚洲三级理论片| 亚洲成年人影院| 韩国视频一区二区| 成年人国产精品| 制服丝袜亚洲播放| 国产色综合一区| 综合激情成人伊人| 欧美a级一区二区| 处破女av一区二区| 欧美视频一区二区| 精品成人免费观看| 亚洲丝袜自拍清纯另类| 日韩**一区毛片| 成人av在线网站| 日韩无一区二区| 椎名由奈av一区二区三区| 天天影视网天天综合色在线播放| 国产精品中文字幕一区二区三区| 色呦呦网站一区| 久久精品视频一区| 亚洲成a人片在线不卡一二三区| 国产乱子轮精品视频| 97精品国产97久久久久久久久久久久 | 国产精品乱人伦| 亚洲一区二区三区激情| 国产精品综合久久| 欧美日韩免费一区二区三区视频| 国产日韩高清在线| 亚洲成av人在线观看| av不卡在线播放| 久久免费视频一区| 午夜精品成人在线| 一本一道波多野结衣一区二区| 欧美精品一区二区三区高清aⅴ| 亚洲综合成人在线视频| 国产成人夜色高潮福利影视| 欧美精品1区2区| 亚洲私人黄色宅男| 国产老女人精品毛片久久| 欧美日韩一级视频| 亚洲欧美另类久久久精品| 国产91精品精华液一区二区三区| 91精品国产综合久久精品麻豆| 一区二区久久久久久| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 亚洲情趣在线观看| 国产成人一区二区精品非洲| 精品粉嫩aⅴ一区二区三区四区| 午夜精品久久久久久久久| 色婷婷久久一区二区三区麻豆| 中文字幕国产精品一区二区| 国产精品影视天天线| 欧美videos大乳护士334| 日韩专区在线视频| 欧美日韩mp4| 首页综合国产亚洲丝袜| 欧美日韩在线免费视频| 一区二区三区精品| 色综合天天综合网国产成人综合天| 国产精品久久久久久久久免费樱桃 | 91尤物视频在线观看| 亚洲视频一区二区在线观看| youjizz久久| 亚洲视频图片小说| 91日韩一区二区三区| 亚洲男同1069视频| 在线这里只有精品| 亚洲第一电影网| 91精品国产综合久久香蕉的特点 | 成人黄页毛片网站| 国产精品国产a| 91猫先生在线| 亚洲小说春色综合另类电影| 在线免费不卡视频| 天天操天天干天天综合网| 51精品视频一区二区三区| 美女尤物国产一区| 久久久精品tv| 972aa.com艺术欧美| 亚洲激情五月婷婷| 欧美羞羞免费网站| 蜜桃视频在线观看一区二区| 国产日本亚洲高清| 99热精品一区二区| 亚洲高清三级视频| 精品成人a区在线观看| 成人激情综合网站| 一区二区三区四区国产精品| 在线91免费看| 国产一区二区不卡| 亚洲欧洲综合另类在线| 4438x亚洲最大成人网| 国产精品中文字幕一区二区三区| 亚洲欧美一区二区三区久本道91 | 精品国产一区二区三区不卡 | 欧美日韩视频在线第一区| 久久久久9999亚洲精品|