SQL Server 分页查询存储过程代码
2022-11-12 09:52:16
内容摘要
这篇文章主要为大家详细介绍了SQL Server 分页查询存储过程代码,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
代码如下:
CREATE PRO
文章正文
这篇文章主要为大家详细介绍了SQL Server 分页查询存储过程代码,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | <code> 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) </code> |
代码如下:
1 2 3 4 | <code> EXEC up_Pager '(SELECT * FROM 表名)aa' , '要排序的列名' ,0-顺序或1-倒序, '显示列' ,每页记录数,指定页, '条件' EXEC up_Pager '(SELECT * FROM T_Gather_Page)aa' , 'SaveTime' ,1, '*' ,40,3, '' </code> |
注:关于SQL Server 分页查询存储过程代码的内容就先介绍到这里,更多相关文章的可以留意
代码注释