昨天需要在存储过程中进行分页的操作,以前没在SQL2005中进行分页过,据说2005含有分页的功能,网上查了一下资料,现在整理了一下,以便下次遇到时进行查阅!

SQL2005如何进行分页??create PROCEDURE [dbo].[Pro_Test]
SQL2005如何进行分页??    
-- Add the parameters for the stored procedure here
SQL2005如何进行分页??
    @PageSize FLOAT,--每页显示的个数
SQL2005如何进行分页??
    @TargetPage SMALLINT--目标页的索引值
SQL2005如何进行分页??
AS
SQL2005如何进行分页??
BEGIN
SQL2005如何进行分页??    
-- SET NOCOUNT ON added to prevent extra result sets from
SQL2005如何进行分页??
    -- interfering with SELECT statements.
SQL2005如何进行分页??
    SET NOCOUNT ON;
SQL2005如何进行分页??
SQL2005如何进行分页??    
-- Insert statements for procedure here
SQL2005如何进行分页??
    WITH Sales_CTE(PageNumber,ID,Numb,Password,CreateDate)
SQL2005如何进行分页??    
AS(
SQL2005如何进行分页??    
select CEILING((ROW_NUMBER() OVER (ORDER By CreateDate desc))/@PageSizeas PageNumber,ID,
SQL2005如何进行分页??    Numb,Password,CreateDate 
from tbl_Wealth_WorthCard 
SQL2005如何进行分页??    )
SQL2005如何进行分页??    
select ID,Numb,Password,CreateDate from Sales_CTE
SQL2005如何进行分页??    
where PageNumber=@TargetPage

对以上存储过程进行分析一下:
with:  这条语句会调用SQL Server中的一个新属性,我们称之为common table expression(CTE),从本质上来说,我们可以将CTE看作是高版本的临时表。
分页的实质就是CTE中的TSQL语句。在下面的选择语句中,我使用了一个新的排序函数——ROW_NUMBER(这一函数很容易使用,你只需要给 ROW_NUMBER函数提供一个域名作为参数,ROW_NUMBER会用它来进行分页)。随后,我使用@PageSize参数来划分每页的行数以及每页的最大行数值。

相关文章:

  • 2021-09-12
  • 2021-10-17
  • 2021-09-02
  • 2021-08-23
  • 2021-06-16
  • 2021-07-13
  • 2021-09-27
  • 2021-05-06
猜你喜欢
  • 2021-11-12
  • 2021-07-22
  • 2022-12-23
  • 2022-01-11
  • 2021-09-20
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案