我用以下语句进行分页查询SELECT * FROM ( SELECT A.*, ROWNUM R FROM ( SELECT * FROM V$PROJFLOWTRACKS WHERE 1=1 ORDER BY PROJSTATUSID, CONTRACTSTATUSID, QCSTATUSID, ARCHSTATUSID, TOACCOUNTOPERID, CZAUDITOPERID, FINAUDITOPERID, BUSINESSSTATUSID ) A WHERE ROWNUM <= 10 ) B WHERE R >= 1前面都是正确的,但是在300-600条后就出现了问题:显示的每十条结果都是一样的,600条以后又正常了,不知是什么问题。
rownum在数据库中是唯一的,不可能出现重复的情况.检查数据库
将
SELECT * FROM ( SELECT A.*, ROWNUM R FROM ( SELECT * FROM V$PROJFLOWTRACKS WHERE 1=1 ORDER BY PROJSTATUSID, CONTRACTSTATUSID, QCSTATUSID, ARCHSTATUSID, TOACCOUNTOPERID, CZAUDITOPERID, FINAUDITOPERID, BUSINESSSTATUSID ) A WHERE ROWNUM <= 10 ) B WHERE R >= 1
变成如下
SELECT * FROM ( SELECT A.*, ROWNUM R FROM ( SELECT * FROM V$PROJFLOWTRACKS WHERE 1=1 ) A WHERE ROWNUM <= 10 ) B WHERE R >= 1
就没有问题了.