SQL SERVER 2000中SQL SERVER TOP分页的方法


  本文标签:SQL SERVER TOP分页

  SQL SERVER TOP分页是我们经常会用到的,下面就对SQL SERVER 2000中SQL SERVER TOP分页的方法进行详尽的阐述,如果您感兴趣的话,不妨一看  。

  SQL SERVER 2000中SQL SERVER TOP分页的方法:

  1. CREATE PROCEDURE [Zhzuo_GetItemsPage]  
  2. @PageIndex INT, /@PageIndex从计数,0为第一页/  
  3. @PageSize INT, /页面大小/  
  4. @RecordCount INT OUT, /总记录数/  
  5. @PageCount INT OUT /页数/AS/获取记录数/  
  6. SELECT @RecordCount = COUNT() FROM Production.Product  
  7. /计算页面数据/  
  8. SET @PageCount = CEILING(@RecordCount 1.0 / @PageSize)  
  9. /TOP记录数/  
  10. DECLARE @TOPCOUNT INT  
  11. SET @TOPCOUNT = @RecordCount - @PageSize @PageIndex   
  12. DECLARE @SQLSTR NVARCHAR(1000)   
  13. IF @PageIndex = 0 OR @PageCount <= 1  
  14. BEGIN  
  15. SET @SQLSTR =N‘SELECT TOP ‘+STR(@PageSize)+  
  16. ‘ProductID,Name FROM Production.Product ORDER BY ProductID DESC‘  
  17. END  
  18. ELSE  
  19. BEGIN   
  20. IF @PageIndex = @PageCount - 1  
  21. BEGIN  
  22. SET @SQLSTR =N‘SELECT FROM ( SELECT TOP ‘ + STR(@TOPCOUNT) +  
  23. ‘ProductID,Name FROM Production.Product ORDER BY ProductID ASC) T ORDER BY ProductID DESC‘  
  24. END  
  25. ELSE  
  26. BEGIN  
  27. SET @SQLSTR =N‘ SELECT TOP ‘+STR(@PageSize)+‘ FROM (SELECT TOP ‘ + STR(@TOPCOUNT) +  
  28. ‘ProductID,Name FROM Production.Product ORDER BY ProductID ASC) T ORDER BY ProductID DESC‘  
  29. END  
  30. END/执行/  
  31. EXEC (@SQLSTR) 

  以上存储过程对页数进行判断,如果是第一页或最后一页,进行特殊处理  。其他情况使用2次TOP翻转  。其中排序条件为ProductID倒序  。最后通过EXECUTE执行SQL字符串拼串  。