我用以下语句进行分页查询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条以后又正常了,不知是什么问题。

解决方案 »

  1.   

    查一下数据,另外如果使用rownum 最好放到最外层表的where条件中
      

  2.   


    rownum在数据库中是唯一的,不可能出现重复的情况.检查数据库
      

  3.   

    数据库没有重复记录:

    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
    就没有问题了.