SQL Server 2000 的分頁查詢(儲存過程)
1.儲存過程語句
CREATE PROCEDURE [dbo].[up_Pager]
@table varchar(2000), --表名
@col varchar(50), --按該列來進行分頁
@orderby bit, --排序,0-順序,1-倒序
@collist varchar(800),--要查詢出的欄位列表,*表示全部欄位
@pagesize int, --每頁記錄數
@page int, --指定頁
@condition varchar(800) --查詢條件
AS
DECLARE @sql nvarchar(4000),@where1 varchar(800),@where2 varchar(800),
@total_Item int,@total_Page int
IF @condition is null or rtrim(@condition)=''
BEGIN--沒有查詢條件
SET @where1=' WHERE '
SET @where2=' '
END
ELSE
BEGIN--有查詢條件
SET @where1=' WHERE () AND '--本來有條件再加上此條件
SET @where2=' WHERE () '--原本沒有條件而加上此條件
END
SET @sql='SELECT @total_Item=CEILING((COUNT(*)+0.0)'+') FROM + @where2
EXEC sp_executesql @sql,N'@total_Item int OUTPUT',@total_Item OUTPUT --計算總條數
set @total_Page = Ceiling((@total_Item+0.0)/@pagesize) --計算頁總數
IF @orderby=0
SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' +
' , '+ CAST(@total_Item AS varchar) + ' as total_Item' +
' , '+CAST(@total_Page AS varchar) + ' as total_Page' +
' FROM MAX() '+
' FROM (SELECT TOP '+CAST(@pagesize*(@page-1) AS varchar)+' '+
@col+' FROM BY ) t) ORDER BY
ELSE
SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' +
' , '+ CAST(@total_Item AS varchar) + ' as total_Item' +
' , '+CAST(@total_Page AS varchar) + ' as total_Page' +
' FROM MIN() '+
' FROM (SELECT TOP '+CAST(@pagesize*(@page-1) AS varchar)+' '+
@col+' FROM BY DESC) t) ORDER BY '+
@col+' DESC'
IF @page=1--第一頁
SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' +
' , '+ CAST(@total_Item AS varchar) + ' as total_Item' +
' , '+CAST(@total_Page AS varchar) + ' as total_Page' +
' FROM +
@where2+'ORDER BY @orderby WHEN 0 THEN '' ELSE ' DESC' END
--print @sql
EXEC(@sql)
2.在SQL中測試(教你如何使用)
EXEC up_Pager '(SELECT * FROM 表名)aa','要排序的列名',0-順序或1-倒序,'顯示列',每頁記錄數,指定頁,'條件'
EXEC up_Pager '(SELECT * FROM T_Gather_Page)aa','SaveTime',1,'*',40,3,''
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/106943/viewspace-906181/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Ms Sql Server查詢儲存過程中的內容SQLServer儲存過程
- SQL 分頁儲存過程SQL儲存過程
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- SQL server儲存過程函式SQLServer儲存過程函式
- SQL Server儲存過程的優缺點SQLServer儲存過程
- SQL SERVER儲存過程AS和GO的含義SQLServer儲存過程Go
- Oracle服務啟動-索引-子查詢-分頁儲存過程問題Oracle索引儲存過程
- 【SQL Server】常見系統儲存過程SQLServer儲存過程
- SqlServer-儲存過程分頁SQLServer儲存過程
- SQL Server 2005的複製儲存過程選項BYSQLServer儲存過程
- Oracle 儲存過程分頁 + Sqlsugar呼叫Oracle儲存過程SqlSugar
- SQLServer查詢使用者儲存過程SQLServer儲存過程
- SQL Server 資料訪問策略:儲存過程QCSQLServer儲存過程
- SQL Server實戰六:T-SQL、遊標、儲存過程的操作SQLServer儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- Hibernate5.1+Sqlserver2000分頁查詢SQLServer
- SqlServer儲存過程應用二:分頁查詢資料並動態拼接where條件SQLServer儲存過程
- SQL Server實戰五:儲存過程與觸發器SQLServer儲存過程觸發器
- MySql/Oracle和SQL Server的分頁查MySqlOracleServer
- SQL Server 2000詳細安裝過程及配置SQLServer
- Q&A:在SQL Server 2005中編寫儲存過程RVSQLServer儲存過程
- 關於SQL server2008除錯儲存過程的完整步驟SQLServer除錯儲存過程
- 如何查詢一個儲存過程是否在執行儲存過程
- 使用SQL SERVER儲存過程實現歷史資料遷移SQLServer儲存過程
- mybatis-plus連線SQL Server2012分頁查詢異常MyBatisSQLServer
- 配置SQL Server Service Broker來傳送儲存過程資料(下)SASQLServer儲存過程
- 配置SQL Server Service Broker來傳送儲存過程資料(上)CYSQLServer儲存過程
- SQL Server儲存過程模擬HTTP請求POST和GET協議SQLServer儲存過程HTTP協議
- Oracle總結【SQL細節、多表查詢、分組查詢、分頁】OracleSQL
- 關於SQL Server中儲存過程在C#中呼叫的簡單示例SQLServer儲存過程C#
- SQL Server資料庫遠端更新目標表資料的儲存過程SQLServer資料庫儲存過程
- 查詢當前資料庫存在某個字串的儲存過程資料庫字串儲存過程
- 資料的儲存和查詢分離不利查詢效能 - thenewstack
- MySQL分頁查詢offset過大,Sql最佳化經驗MySql
- SQL Server的巢狀儲存過程中使用同名的臨時表怪像淺析SQLServer巢狀儲存過程
- MySQL儲存過程裡動態SQL的使用UXMySql儲存過程UX
- [SQL Server玩轉Python] 三.SQL Server儲存過程實現Python鳶尾花決策樹訓練及預測SQLServerPython儲存過程
- Sql Server 的引數化查詢SQLServer
- 使用儲存過程(PL/SQL)向資料庫中儲存BLOB物件儲存過程SQL資料庫物件