SQL SERVER TOP分页是我们经常会用到的,下面就对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)
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
以上存储过程对页数进行判断,如果是第一页或最后一页,进行特殊处理。其他情况使用2次TOP翻转。其中排序条件为ProductID倒序。最后通过EXECUTE执行SQL字符串拼串。
【编辑推荐】