六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 249|回复: 0

Derby分页实现

[复制链接]

升级  20%

2

主题

2

主题

2

主题

童生

Rank: 1

积分
10
 楼主| 发表于 2013-1-14 22:59:22 | 显示全部楼层 |阅读模式
在Derby中使用如下语句分页
SELECT * FROM ( SELECT ROW_NUMBER() OVER() AS R, id, jobid, logtime, msgtext FROM log_table where 1=1 order by logtime desc ) AS tmp WHERE R > ? and R <= ?
应该是Derby本身的问题,导致总是在当前页可以排序,而不能整体排序。
替换为
SELECT id, jobid, logtime, msgtext FROM log_table where 1=1 order by logtime desc OFFSET ? ROWS FETCH NEXT ? ROWS ONLY
则工作良好。说是10.7的版本才有OFFSET功能,其实10.6也是有的。
参考资料:
http://db.apache.org/derby/faq.html#limit
http://db.apache.org/derby/docs/10.7/ref/rrefsqljoffsetfetch.html
http://wiki.apache.org/db-derby/OLAPRowNumber
http://db.apache.org/derby/manuals/index.html
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表