IF EXISTS(SELECT * FROM sysobjects WHERE name='usp_getPage')
  DROP PROC usp_getPage
  GO
  CREATE PROC usp_getPage
  @totalCount INT OUTPUT,
   @PageIndex int=1,
   @PageCount INT=5
  AS
  SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY classid) AS id,* FROM dbo.Class) AS temp WHERE id BETWEEN
   @PageCount*(@PageIndex-1)+1 AND @PageCount*@PageIndex
   SET @totalCount=CEILING((SELECT COUNT(*) FROM dbo.Class)*1.0/@PageCount)
  GO
 
 DECLARE @count INT 
 exec usp_getPage @count OUTPUT,2,2
 PRINT @count

主要是 ROW_NUMBER() OVER()函数可以从1开始给select到的数据集标号

然后,ceiling()函数可以获取与相应值相近的最大整数,如:ceiling(2.1)=3

 

相关文章:

  • 2021-05-15
  • 2021-07-20
  • 2021-06-26
  • 2021-12-02
  • 2021-11-29
  • 2022-01-01
  • 2021-11-26
  • 2021-11-19
猜你喜欢
  • 2021-08-15
  • 2022-12-23
  • 2022-12-23
  • 2021-11-13
  • 2021-06-18
  • 2022-02-18
  • 2022-12-23
相关资源
相似解决方案