存储过程 实现表中数据分页显示

本文内同概要:用存储过程实现数据表分页显示

此文仅是一种算法实现,希望有兴趣的朋友可以多提点算法。。

源代码:

create proc table1
@i int,--每页显示的个数
@j int,--显示的页码
@table varchar(20),--哪张表
@tabid varchar(20)--表的ID
as
declare @sql varchar(500)  --声明一个局部变量,来存储字符串的值
set @sql='declare @k int '
set @sql=@sql+' set @k=(select count(*) from
'+@table+')'
set @sql=@sql+'select top '+str(@i)+' * from
(select top(@k-('+str(@j)+'-1)*'+str(@i)+') * from
'+@table+' order by'+@tabid+' Desc) a

--此处用的是拼接字符串的操作
order by
a.'+@tabid+''
exec(@sql)  --用exec结合字符串,将字符串装换成指令执行

--调用

exec table1 1,2,KC,Cid

//,第一个参数是每页显示多少行数据、

//第二个参数是显示的页码,

//第三个参数显示的是哪张表,

//第四个参数:要进行排序的字段名

--算法思路简单介绍:用top结合排序(先降序,再升序),用top抓取值来进行分页显示

--好处:每次我们只需传一些输入的 参数,就可以看到我们想要的数据。。利于代码的重用,不用每次都写存储过程

将操作进行封装,对于代码的重用有很大的意义。。。

在此希望各位博友用不同的算法,实现同样的效果(注意区别写的时候重点要放在在算法实现的那部分)

希望各位博友提供不同的算法。。。

当然上面的代码有很大的漏洞,例如我们传得数据超出了表中的数据  等等。。

所以我们传得时候小心一点,我们主要是探讨几种不同的算法,所以这些就不做太多的说明了。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值