麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

SQLServer存儲(chǔ)過(guò)程實(shí)現(xiàn)單條件分頁(yè)

2024-08-31 01:04:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

話不多說(shuō),請(qǐng)看代碼:

SQLServer Procedure Pagination_basic:ALTER PROCEDURE [qiancheng].[Pagination_basic] (@Table_name VARCHAR (255),--name of table@Rows_target VARCHAR (1000) = '*',--search rows @Rows_condition VARCHAR (1000) = '',--the condition to find target (no where)@Rows_order VARCHAR (255) = '',--the rows to rank@Order_type INT = 0,-- *Q*C* 0 normal 1 down@PageSizes INT = 10,--the size of each page@PageIndex INT = 1,--current page@ShowPages INT,--whether show the pages *Q*C* 1-yes 0-no@ShowRecords INT,--whether show the record *Q*C* 1-yes 0-no@Records_total INT OUTPUT,--returned total records@Pages_total INT OUTPUT --returned total pages) ASDECLARE @MainSQL_QC nvarchar (2000) --Main SQL sentenceDECLARE @Var_QC VARCHAR (100) --Temporary variateDECLARE @Order_QC VARCHAR (400) --the sort to rankSET @Records_total = 0SET @Pages_total = 0IF @ShowRecords = 1OR @ShowPages = 1BEGINIF @Rows_condition != ''SET @MainSQL_QC = 'select @Records_total = count(1) from [' + @Table_name + '] where ' +@Rows_conditionELSESET @MainSQL_QC = 'select @Records_total = count(1) from [' + @Table_name + ']' EXEC sp_executesql @MainSQL_QC, N'@Records_total int out' ,@Records_total OUTPUTENDIF @ShowPages = 1BEGINIF @Records_total <= @PageSizesSET @Pages_total = 1ELSEBEGINSET @Pages_total = @Records_total /@PageSizesIF (@Records_total %@PageSizes) > 0SET @Pages_total = @Pages_total + 1ENDENDIF @Order_type = 1BEGINSET @Var_QC = '<(select min'SET @Order_QC = ' order by [' + @Rows_order + '] desc'ENDELSEBEGINSET @Var_QC = '>(select max'SET @Order_QC = ' order by [' + @Rows_order + '] asc'ENDIF @PageIndex = 1BEGINIF @Rows_condition != ''SET @MainSQL_QC = 'select top ' + str(@PageSizes) + ' ' +@Rows_target + ' from [' + @Table_name + '] where ' + @Rows_condition + ' ' + @Order_QCELSESET @MainSQL_QC = 'select top ' + str(@PageSizes) + ' ' +@Rows_target + ' from [' + @Table_name + '] ' + @Order_QCENDELSEBEGINIF @Rows_condition != ''SET @MainSQL_QC = 'select top ' + str(@PageSizes) + ' ' +@Rows_target + ' from [' + @Table_name + '] where [' + @Rows_order + ']' + @Var_QC + '([' + @Rows_order + ']) from (select top ' + str((@PageIndex - 1) *@PageSizes) + ' [' + @Rows_order + '] from [' + @Table_name + '] where ' + @Rows_condition + ' ' + @Order_QC + ') as Tmep_QC) and ' + @Rows_condition + ' ' + @Order_QCELSESET @MainSQL_QC = 'select top ' + str(@PageSizes) + ' ' +@Rows_target + ' from [' + @Table_name + '] where [' + @Rows_order + ']' + @Var_QC + '([' + @Rows_order + ']) from (select top ' + str((@PageIndex - 1) *@PageSizes) + ' [' + @Rows_order + '] from [' + @Table_name + ']' + @Order_QC + ') as Tmep_QC)' + @Order_QCEND EXEC (@MainSQL_QC)

調(diào)用:execute pagination_basic 'UserDetail','*','','id','1','5','1','1','1','',''

主要是末尾的語(yǔ)句,拆分下來(lái)便是這樣:

select top 每頁(yè)數(shù) 列名 from [表名] where [排序字段名] <    --1 倒序輸出若列 小于之前頁(yè)數(shù)的最小值

(select min ( [排序字段名] )from --2 獲得一個(gè)指定列名中的最小值并輸出

(select top (當(dāng)前頁(yè)-1)*每頁(yè)數(shù) [排序字段名] from [表名] where [條件] [排序類型]) --3 選擇之前頁(yè)數(shù)總數(shù)據(jù)倒序輸出

as Tmep_QC)--4 建立一個(gè)名為T(mén)mep_QC的臨時(shí)表--2 獲得一個(gè)指定列名中的最小值并輸出

and [條件] [排序類型]--1 倒序輸出若列 小于之前頁(yè)數(shù)的最小值

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持VeVb武林網(wǎng)!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MSSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 电影一级毛片 | 成人做爰高潮片免费视频美国 | 亚洲第一成人在线 | 97视频| 美女网站黄在线观看 | 国产精品毛片va一区二区三区 | 红杏网站永久免费视频入口 | 国产精品hd免费观看 | 九九热视频免费在线观看 | 欧美一级黄色网 | 91精品久久久久久 | 成人一级黄色 | 一级外国毛片 | 精品亚洲一区二区三区 | 五月天堂av91久久久 | 免费a级片在线观看 | 2019亚洲日韩新视频 | 成人资源在线观看 | 夜添久久精品亚洲国产精品 | 91精品国产日韩91久久久久久360 | 亚洲天堂ww | 97zyz成人免费视频 | 91精品国产99久久久久久红楼 | 黄色成年在线观看 | 嫩草影院在线观看网站成人 | 斗罗破苍穹在线观看免费完整观看 | 国产精品国产三级国产在线观看 | 经典三级av在线 | 久久久久久久亚洲视频 | 欧美日韩一区,二区,三区,久久精品 | 久久久久久久久久综合 | 欧美日韩一 | 欧美成人精品 | 国人精品视频在线观看 | 亚洲午夜不卡 | 日本aⅴ在线| 91中文在线 | 免费a级网站 | 福利在线小视频 | 精品一区在线视频 | 91精品国产乱码久久桃 |