SQL Server 分页查询存储过程代码
时间:2024-01-21 04:53:40
CREATE PROCEDURE [dbo].[up_Pager]
@table varchar(2000), --表名
@col varchar(50), --按该列来进行分页
@orderby bit, --排序,0-顺序,1-倒序
@collist varchar(800),--要查询出的字段列表,*表示全部字段
@pagesize int, --每页记录数
@page int, --指定页
@condition varchar(800) --查询条件
AS
DECLARE @sql nvarchar(4000),@where1 varchar(800),@where2 varchar(800),
@total_Item int,@total_Page int
IF @condition is null or rtrim(@condition)=''
BEGIN--没有查询条件
SET @where1=' WHERE '
SET @where2=' '
END
ELSE
BEGIN--有查询条件
SET @where1=' WHERE ('+@condition+') AND '--本来有条件再加上此条件
SET @where2=' WHERE ('+@condition+') '--原本没有条件而加上此条件
END
SET @sql='SELECT @total_Item=CEILING((COUNT(*)+0.0)'+') FROM '+@table+ @where2
EXEC sp_executesql @sql,N'@total_Item int OUTPUT',@total_Item OUTPUT --计算总条数
set @total_Page = Ceiling((@total_Item+0.0)/@pagesize) --计算页总数
IF @orderby=0
SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+
' , '+ CAST(@total_Item AS varchar) + ' as total_Item' +
' , '+CAST(@total_Page AS varchar) + ' as total_Page' +
' FROM mailto:'+@table+@where1+@col+'%3E(SELECT MAX('+@col+') '+
' FROM (SELECT TOP '+CAST(@pagesize*(@page-1) AS varchar)+' '+
@col+' FROM '+@table+@where2+'ORDER BY '+@col+') t) ORDER BY '+@col
ELSE
SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+
' , '+ CAST(@total_Item AS varchar) + ' as total_Item' +
' , '+CAST(@total_Page AS varchar) + ' as total_Page' +
' FROM mailto:'+@table+@where1+@col+'%3C(select MIN('+@col+') '+
' FROM (SELECT TOP '+CAST(@pagesize*(@page-1) AS varchar)+' '+
@col+' FROM '+@table+@where2+'ORDER BY '+@col+' DESC) t) ORDER BY '+
@col+' DESC'
IF @page=1--第一页
SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+
' , '+ CAST(@total_Item AS varchar) + ' as total_Item' +
' , '+CAST(@total_Page AS varchar) + ' as total_Page' +
' FROM '+@table+
@where2+'ORDER BY '+@col+CASE @orderby WHEN 0 THEN '' ELSE ' DESC' END
--print @sql
EXEC(@sql)
在SQL中测试(教你如何使用)
EXEC up_Pager '(SELECT * FROM 表名)aa','要排序的列名',0-顺序或1-倒序,'显示列',每页记录数,指定页,'条件'
EXEC up_Pager '(SELECT * FROM T_Gather_Page)aa','SaveTime',1,'*',40,3,''
标签:分页,存储过程
0
投稿
猜你喜欢
Python二进制数据结构Struct的具体使用
2022-07-10 00:01:59
利用Opencv中Houghline方法实现直线检测
2023-09-07 12:40:39
javascript实现删除前弹出确认框
2024-04-18 09:28:54
解决Atom安装Hydrogen无法运行python3的问题
2021-07-19 22:16:01
JavaScript 作用域scope简单汇总
2024-04-18 10:54:55
如何实现vue的tree组件
2024-05-09 15:17:32
Vue3+Vite实现动态路由的详细实例代码
2023-07-02 16:58:37
布同 统计英文单词的个数的python代码
2023-12-27 09:19:22
Python中的错误和异常处理简单操作示例【try-except用法】
2022-09-23 08:00:29
python getpass实现密文实例详解
2021-06-25 20:29:17
教你用Python查看茅台股票交易数据的详细代码
2022-06-05 13:36:16
Python实现的企业粉丝抽奖功能示例
2023-10-05 13:57:43
JavaScript 实现 Konami Code
2009-05-26 12:44:00
Pytorch 使用不同版本的cuda的方法步骤
2023-02-06 07:52:23
Python使用pandas将表格数据进行处理
2023-10-08 06:23:55
logging level级别介绍
2023-06-07 00:39:16
使用python实现正则匹配检索远端FTP目录下的文件
2022-03-27 07:29:15
排序与检索
2008-05-18 13:09:00
python爬虫框架scrapy代理中间件掌握学习教程
2021-03-22 15:34:54
Python读取excel指定列生成指定sql脚本的方法
2021-05-06 19:11:13