SQL SERVER TOP分页是我们经常会用到的,接下来的SQL server内容就对SQL SERVER 2000中SQL SERVER TOP分页的方法进行详尽的阐述,假如您感兴趣的话,不妨一看。
SQL SERVER 2000中SQL SERVER TOP分页的方法:
CREATE PROCEDURE [Zhzuo_GetItemsPage] @PageIndex INT, /@PageIndex从计数,0为第一页/ @PageSize INT, /页面大小/ @RecordCount INT OUT, /总记录数/ @PageCount INT OUT /页数/AS/获取记录数/ SELECT @RecordCount = COUNT() FROM Production.Product /计算页面数据/ SET @PageCount = CEILING(@RecordCount 1.0 / @PageSize) /TOP记录数/ 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/执行/ EXEC (@SQLSTR)
以上存储过程对页数进行判断,假如是第一页或最后一页,进行特殊处理。其他情况使用2次TOP翻转。其中排序条件为ProductID倒序。最后通过EXECUTE执行SQL字符串拼串。