SQL SERVER 2000中SQL SERVER TOP分頁的方法
作者:佚名
SQL SERVER不同版本中的分頁方法都不太一樣,下文對SQL SERVER 2000中TOP分頁的方法進行了詳細的介紹,希望對您能有些許的幫助。
SQL SERVER TOP分頁是我們經(jīng)常會用到的,下面就對SQL SERVER 2000中SQL SERVER TOP分頁的方法進行詳盡的闡述,如果您感興趣的話,不妨一看。
SQL SERVER 2000中SQL SERVER TOP分頁的方法:
- CREATE PROCEDURE [Zhzuo_GetItemsPage]
- @PageIndex INT, /@PageIndex從計數(shù),0為第一頁/
- @PageSize INT, /頁面大小/
- @RecordCount INT OUT, /總記錄數(shù)/
- @PageCount INT OUT /頁數(shù)/AS/獲取記錄數(shù)/
- SELECT @RecordCount = COUNT() FROM Production.Product
- /計算頁面數(shù)據(jù)/
- SET @PageCount = CEILING(@RecordCount 1.0 / @PageSize)
- /TOP記錄數(shù)/
- DECLARE @TOPCOUNT INT
- SET @TOPCOUNT = @RecordCount - @PageSize @PageIndex
- DECLARE @SQLSTR NVARCHAR(1000)
- IF @PageIndex = 0 OR @PageCount <= 1
- BEGIN
- SET @SQLSTR =N‘SELECT TOP ‘+STR(@PageSize)+
- ‘ProductID,Name FROM Production.Product ORDER BY ProductID DESC‘
- END
- ELSE
- BEGIN
- IF @PageIndex = @PageCount - 1
- BEGIN
- SET @SQLSTR =N‘SELECT FROM ( SELECT TOP ‘ + STR(@TOPCOUNT) +
- ‘ProductID,Name FROM Production.Product ORDER BY ProductID ASC) T ORDER BY ProductID DESC‘
- END
- ELSE
- BEGIN
- SET @SQLSTR =N‘ SELECT TOP ‘+STR(@PageSize)+‘ FROM (SELECT TOP ‘ + STR(@TOPCOUNT) +
- ‘ProductID,Name FROM Production.Product ORDER BY ProductID ASC) T ORDER BY ProductID DESC‘
- END
- END/執(zhí)行/
- EXEC (@SQLSTR)
以上存儲過程對頁數(shù)進行判斷,如果是第一頁或最后一頁,進行特殊處理。其他情況使用2次TOP翻轉。其中排序條件為ProductID倒序。最后通過EXECUTE執(zhí)行SQL字符串拼串。
【編輯推薦】
責任編輯:段燃
來源:
互聯(lián)網(wǎng)