SQL2005数据库
 
SQL2005 数据库,才能使用: Row_Number()  Over (Order   By  ...)
 
Create PROCEDURE   DividePage_By_ROW_NUMBER
 
@iPageSize      int         --每页数
,@iIndexPage    int         --第几页
,@vOrderBy      varchar(50) --排序字段
,@iRowCount     int         --总记录数
 
AS
BEGIN
SET NOCOUNT ON;
with PageTable as
(
SELECT     *,   ROW_NUMBER()  OVER  (ORDER  BY  studentid  DESC) AS num
FROM         Student
)
SELECT  *   FROM   PageTable
WHERE   num 
BETWEEN  ((@iIndexPage-1)*@iPageSize+1)  AND  @iPageSize*@iIndexPage
 
SET NOCOUNT OFF;
END
GO
 
 
 
Oracle 数据库
 
 
 
SQL2000 数据库