一个通用的数据分页的存储过程
来源:互联网 发布:高校基本状态数据库 编辑:程序博客网 时间:2024/05/07 12:37
CREATE PROCEDURE sp_page
@tb varchar(20), --表名
@col varchar(20), --按该列来进行分页
@coltype bit, --@col列的类型,0-数字类型,1-字符类型
@collist varchar(800),--要查询出的字段列表
@selecttype int, --查询类型,1-前页,2-后页,3-首页,4-末页,5-指定页
@pagesize int, --每页记录数
@page int, --指定页
@minid varchar(50), --当前最小号
@maxid varchar(50) --当前最大号
AS
DECLARE @sql varchar(8000)
IF @coltype=1
BEGIN
SET @minid=''''+@minid+''''
SET @maxid=''''+@maxid+''''
END
SET @sql=
CASE @selecttype
WHEN 1--前页
THEN 'SELECT '+@collist+' FROM (SELECT TOP '+CAST(@pagesize AS varchar)+
' '+@collist+' FROM '+@tb+' WHERE '+@col+'<'+@minid+
' ORDER BY '+@col+' DESC) t ORDER BY '+@col
WHEN 2--后页
THEN 'SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+
' FROM '+@tb+' WHERE '+@col+'>'+@maxid+' ORDER BY '+@col
WHEN 3--首页
THEN 'SELECT TOP '+CAST(@pagesize AS varchar)+
' '+@collist+' FROM '+@tb+' ORDER BY '+@col
WHEN 4--末页
THEN 'SELECT '+@collist+' FROM (SELECT TOP '+CAST(@pagesize AS varchar)+
' '+@collist+' FROM '+@tb+' ORDER BY '+@col+' DESC) t ORDER BY '+@col
WHEN 5--指定页
THEN 'SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+
' FROM '+@tb+' WHERE '+@col+' NOT IN'+
'(SELECT TOP '+CAST(@pagesize*(@page-1) AS varchar)+' '+@col+
' FROM '+@tb+' ORDER BY '+@col+') ORDER BY '+@col
END
EXEC(@sql)
GO
转自http://www.itpub.net/542180.html
- 发布一个通用的数据分页的存储过程
- 一个通用的数据分页的存储过程
- 一个通用的数据分页的存储过程
- 一个通用的数据分页的存储过程
- 一个通用的数据分页的存储过程
- 一个通用的数据分页的存储过程
- 一个通用的数据分页的存储过程
- 通用的数据分页的存储过程
- 一个通用的分页存储过程
- 一个通用的分页存储过程
- 一个通用的分页存储过程..............
- 通用的分页存储过程
- 通用的分页存储过程
- 通用分页的存储过程
- 通用的分页存储过程
- 通用分页的存储过程
- 通用的数据分页的存储过程 [转]
- 一个将数据分页的存储过程
- 再谈C语言的学习(五)──C语言存在的意义
- 异常使用方法探讨
- 要回学校了
- 再谈C语言的学习(六)──学习C语言的认知、态度
- 再谈C语言的学习(七)──学习C语言的方法
- 一个通用的数据分页的存储过程
- 当我们老的时候
- 再谈C语言的学习(八)──程序设计的修养
- 再谈C语言的学习(九)──程序设计中的几个法则
- Window对象概述
- 自动检测创建多级目录, fso与stream生成文件函数
- 世界上至少有十种东西是你不知道的!(Just For Fun)
- 行车中易误大事的“小事”! 应该看看,时刻提醒一下自己!
- 编程浪子的六年之痒!