sybase IQ 分页
时间:2010-11-12
来源:互联网
有人写过sybase iq 分页的过程吗,IQ 数据量比较大,用什么处理比较好?
作者: wangdonsy 发布时间: 2010-11-12
IQ中分页是个比较纠结的事情
作者: andkylee 发布时间: 2010-11-12
本帖最后由 wangdonsy 于 2010-11-12 17:05 编辑
不借助临时表或新建表,能不能在原表操作?
IQ 里面 ALTER TABLE 不能对临时表操作,新建表数据大,效率有问题
本论坛的一位兄弟写的
复制代码
不借助临时表或新建表,能不能在原表操作?
IQ 里面 ALTER TABLE 不能对临时表操作,新建表数据大,效率有问题
本论坛的一位兄弟写的
- Please see the below sp I wrote:
-
- CREATE PROCEDURE GetDataByPage(
- @SqlStr varchar(8000),
- @PageSize int,
- @CurrentPage int)
- AS
- DECLARE @FirstRec int, @LastRec int,@dt varchar(10)
- BEGIN
-
- SELECT @FirstRec = (@CurrentPage - 1) * @PageSize
- SELECT @LastRec = (@CurrentPage * @PageSize + 1)
-
- SELECT @dt= substring(convert(varchar,rand()),3,10)
-
- SELECT @SqlStr = stuff(@SqlStr,charindex(' FROM ',upper(@SqlStr)),6,' INTO tempdb..Paging'+@dt+' FROM ')
- EXECUTE (@SqlStr)
-
- SELECT @SqlStr = 'ALTER TABLE tempdb..Paging'+@dt+' ADD RID numeric(10) IDENTITY PRIMARY KEY'
- EXECUTE (@SqlStr)
-
- SELECT @SqlStr = 'SELECT Count(*) From tempdb..Paging'+@dt
- EXECUTE (@SqlStr)
-
- SELECT @SqlStr = 'SELECT * FROM tempdb..Paging'+@dt+' WHERE RID >; '+convert(varchar,@FirstRec)+' and RID < '+convert(varchar,@LastRec)
- EXECUTE (@SqlStr)
-
- SELECT @SqlStr = 'DROP TABLE tempdb..Paging'+@dt
- EXECUTE (@SqlStr)
-
- END
-
-
- some comments:
- 1.@SqlStr varchar(8000), depends on your page size
- 2. this is a generic paging sp, if you just want to use it for specific table, you'd better change the 'tempdb..Paging' to #Paging, the performance will be better
作者: wangdonsy 发布时间: 2010-11-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28