SQL SERVER 2000中SQL SERVER TOP分頁的方法
作者:佚名 
  SQL SERVER不同版本中的分頁方法都不太一樣,下文對SQL SERVER 2000中TOP分頁的方法進(jìn)行了詳細(xì)的介紹,希望對您能有些許的幫助。
 SQL SERVER TOP分頁是我們經(jīng)常會用到的,下面就對SQL SERVER 2000中SQL SERVER TOP分頁的方法進(jìn)行詳盡的闡述,如果您感興趣的話,不妨一看。
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ù)進(jìn)行判斷,如果是第一頁或最后一頁,進(jìn)行特殊處理。其他情況使用2次TOP翻轉(zhuǎn)。其中排序條件為ProductID倒序。最后通過EXECUTE執(zhí)行SQL字符串拼串。
【編輯推薦】
責(zé)任編輯:段燃 
                    來源:
                    互聯(lián)網(wǎng)
 














 
 
 
 
 
 
 