在存储过程中排序分页
来源:互联网 发布:网络暴力案例分析ppt 编辑:程序博客网 时间:2024/06/06 13:22
在项目中,会遇到查询出的结果排序分页的问题,可以有多种解决方法,一个是利用开发工具提供的方法,例如.NET Visual Studio中的GridView,就提供了排序,分页功能。但如果情况复杂,我们可以把排序分页放到存储过程来完成。
以一个简单例子来说明问题:
Table [ReportFile]
FIELD TYPE
id int
name nvarchar(255)
content image
以id降序排序分页的存储过程如下:
CREATE PROCEDURE [dbo].[Reports_Page]
@pagesize int, -------- 每页行数
@pageindex int, -------- 制定页数
@condition varchar(200) -------- 查询条件
AS
BEGIN
DECLARE @strSQL varchar(5000)
IF @pageindex = 1
BEGIN
SET @strSQL = 'SELECT TOP '
+ STR(@pagesize)
+ ' [id],'
+ '[name],'
+ '[content] '
+ 'FROM [Reports_Page] '
+ 'WHERE '
+ @condition
+ ' ORDER BY [ReportArchiveGLTI_ID] DESC'
END
ELSE
BEGIN
SET @strSQL = 'SELECT TOP '
+ STR(@pagesize)
+ ' [id],'
+ '[name],'
+ '[content] '
+ 'FROM [Reports_Page] '
+ @condition
+ 'AND ([id] < ('
+ 'SELECT min([id]) FROM ( '
+ 'SELECT TOP '
+ STR((@pageindex-1)*@pagesize)
+ ' [id],'
+ '[name],'
+ '[content] '
+ 'FROM [Reports_Page] '
+ @condition
+ ' ORDER BY [ReportArchiveGLTI_ID] DESC') as tblTmp ) )'
+ ' ORDER BY [ReportArchiveGLTI_ID] DESC'
END
EXEC(@strSQL)
END
GO
当调用存储过程时,提供参数页码、每页行数、条件即可。
- 在存储过程中排序分页
- 在存储过程中分页
- 在Oracle存储过程中实现分页
- 在存储过程中实现分页
- 在Oracle存储过程中实现分页
- 在Oracle存储过程中实现分页
- 在存储过程中实现分页.
- 一个分页排序存储过程
- 如何在Oracle存储过程中实现分页
- 如何在Oracle存储过程中实现分页
- 在MS SQLServer中使用存储过程实现通用分页
- 利用CTE递归在存储过程中实现真分页
- oracle存储过程分页以及在java中调用
- 在Oracle存储过程中正确的实现分页
- 使用存储过程在Oracle中来封装分页
- Sql2005中分页存储过程
- SQL存储过程中分页
- 多字段排序分页存储过程
- CocoaX、Code、Objective-C语法快速参考
- cache protocol
- SOA与BPM的融合
- (转)在敏捷测试中如何设计用例
- sql cluster
- 在存储过程中排序分页
- 李开复揭密微软成功之道 寄语中国软件业
- sql cluster
- java调用oracle存储过程
- 在Oracle存储过程中实现分页
- oracle 笔记
- UVa Problem Solution: 10090 - Marbles
- 更改Oracle JDeveloper的显示语言为英语
- c# as is 类型转换