免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5097 | 回复: 14
打印 上一主题 下一主题

IBM AS 400 DB2数据库记录集分页返回的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-18 16:04 |只看该作者 |倒序浏览
我用RRN()函数,比如
select * from tablea where rrn(tablea)>;=1 and rrn(tablea)<=100
返回正确
但是我用
select * from tablea where cola='aaa' and colb='cc' and rrn(tablea)>;=1 and rrn(tablea)<=100
什么记录都不返回,但是表中确实有满足条件的记录
并且
select * from tablea where rrn(tablea)>;=1 and rrn(tablea)<=100
order by colc desc
并不是按照colc记录顺序返回
这个问题怎么解决,或者用别的方式怎么来实现,谢谢大家

论坛徽章:
0
2 [报告]
发表于 2003-02-18 17:29 |只看该作者

IBM AS 400 DB2数据库记录集分页返回的问题

cola和colb字段会不会有空格

你试试
select * from tablea where cola like 'aaa' and colb like 'cc' and rrn(tablea)>;=1 and rrn(tablea)<=100
如果有记录,想想如何去掉字段中空格

论坛徽章:
0
3 [报告]
发表于 2003-02-18 17:42 |只看该作者

IBM AS 400 DB2数据库记录集分页返回的问题

苦恼!!高人指点

论坛徽章:
0
4 [报告]
发表于 2003-02-19 09:09 |只看该作者

IBM AS 400 DB2数据库记录集分页返回的问题

我觉的是不是应该这样写:
select * from (select  * from tablea where  rrn(tablea)>;=1 and rrn(tablea)<=100 ) where cola='aaa' and colb='cc'

论坛徽章:
0
5 [报告]
发表于 2003-02-19 09:23 |只看该作者

IBM AS 400 DB2数据库记录集分页返回的问题

不对,400数据库报错,而且逻辑不对,我是要在满足cola='aaa' and colb='cc'的条件下取其中的N条记录

论坛徽章:
0
6 [报告]
发表于 2003-02-19 09:53 |只看该作者

IBM AS 400 DB2数据库记录集分页返回的问题

select  * from (select * from tablea where cola='aaa' and colb ='cc')  where rrn(select * from tablea where cola='aaa' and colb ='cc')>;=1 and  rrn(select * from tablea where cola='aaa' and colb ='cc')<=100


没有400的环境,没法试,只是这样想。

论坛徽章:
0
7 [报告]
发表于 2003-02-19 16:17 |只看该作者

IBM AS 400 DB2数据库记录集分页返回的问题

SELECT * FROM TABLEA WHERE cola='aaa' and colb='cc'
FETCH FIRST N ROWS ONLY.
应该能满足你的要求。(环境OS/400 V5R1)

论坛徽章:
0
8 [报告]
发表于 2003-02-19 16:33 |只看该作者

IBM AS 400 DB2数据库记录集分页返回的问题

只能满足在条件cola='aaa' and colb='cc' 下取最前面的N条的记录,假如满足条件cola='aaa' and colb='cc' 的记录有3N条的话,我要取第N+1到2N条之间的记录该怎么来实现呢?迷茫啊

论坛徽章:
0
9 [报告]
发表于 2003-02-19 16:49 |只看该作者

IBM AS 400 DB2数据库记录集分页返回的问题

请neo2718再指点,谢谢!!

论坛徽章:
0
10 [报告]
发表于 2003-02-19 17:00 |只看该作者

IBM AS 400 DB2数据库记录集分页返回的问题

取决你的排序,如果你要用cola的升序或者降序取n+1-->;2n之间的纪录,还是写程序吧。rrn()不是你所需要的。因为用sql来create table的时候默认的选项为 Reuse deleted records . . . . . . . . . . . : REUSEDLT   *YES     
用dspfd 可以看到上面的选项。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP