简单的分页存储过程

本文介绍了一种使用SQL Server存储过程实现服务器端分页的方法。通过动态SQL语句及ROW_NUMBER() OVER()函数组合使用,实现了根据指定的节点ID、排序字段、排序方式、页面ID和页面展示大小进行数据检索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CREATE proc [dbo].[GetGridDataInfo]
(
	@NodeId INT,            //节点ID
	@SordName varchar(30),  //排序字段
	@SordOrder varchar(10), //排序方式
	@PageIndex varchar(20), //页面ID
	@PageSize  varchar(20)	//页面展示大小
)
as
begin

DECLARE @SQL VARCHAR(5000)
SET @SQL = '
	SELECT id, pId, name
	FROM 
	(
		SELECT ROW_NUMBER() OVER( ORDER BY ' + @SordName + ' ' + @SordOrder + ' ) AS RANK, *
		FROM
		(
			SELECT id, pId, name FROM dbo.T_treeDemoInfo 
			WHERE pId = ' + CAST(@NodeId AS VARCHAR(10)) + '  

			UNION

			SELECT B.* FROM dbo.T_treeDemoInfo A
			INNER JOIN T_treeDemoInfo B ON A.ID = B.pId
			WHERE A.pId = ' + CAST(@NodeId AS VARCHAR(10)) + ' 			
		) A
	) TEMP 
	WHERE RANK BETWEEN STR(( ' + @PageIndex + ' - 1) * ' + @PageSize + ' + 1) AND STR( ' + @PageIndex + ' * '+ @PageSize + ') '  	 			
	
PRINT(@SQL)	
EXEC(@SQL)

 


//服务器端F分页

//检索条数存储过程配合

//ROW_NUMBER OVER

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值