select rownum,row_.*, rownum jres_db_rownum_
  from (select sa.ADJUST_ID,
              sa.STAFF_CODE,
              -- sa.SERIAL_NO,
              sa.CURR_DT,
              -- sa.DEAL_TM,
               sa.SALARY_SUBJECT,
               sa.OCCUR_BALANCE,
               sa.BRANCH_NO,
               sa.TEAM_NO,
               
               sa.OP_ACCOUNT,
               sa.REMARK,
               sa.audit_status
          from sly_adjustfarerecord sa
         where 1 = 1           
         order by audit_status, curr_dt desc, branch_no) row_如上语句的结果如下:
疑问:为什么加条件后的结果不是1上面图中的前面10条呢,然后2图中得出的结果是按照什么逻辑得出的

解决方案 »

  1.   

    加了条件  where rownum <= 10  后执行的结果如下图2:
    疑问:为什么加条件后的结果不是上面1图中的前面10条呢,然后2图中得出的结果是按照什么逻辑得出的?坐等结果。 
      

  2.   

    select * from (select rownum rr,row_.*, rownum jres_db_rownum_   from (select sa.ADJUST_ID,               sa.STAFF_CODE,               -- sa.SERIAL_NO,               sa.CURR_DT,               -- sa.DEAL_TM,                sa.SALARY_SUBJECT,                sa.OCCUR_BALANCE,                sa.BRANCH_NO,                sa.TEAM_NO,                                 sa.OP_ACCOUNT,                sa.REMARK,                sa.audit_status           from sly_adjustfarerecord sa          where 1 = 1                     order by audit_status, curr_dt desc, branch_no) row_ ) bb where  bb.rr<11
      

  3.   

    你的 where rownum <= 10  是写在哪呢?你不完整写出来,谁知道你写的语句是怎样的,坐等有啥用
      

  4.   

    rownum写在里面那个查询里,外面就不要了。
      

  5.   

    请参考 http://hi.baidu.com/elfinalice/item/be6aed3321ce42c42e8ec2c5 网址的 (4)rownum和排序  章节,原理:Oracle中的rownum的是在取数据的时候产生的序号,所以想对指定排序的数据去指定的rowmun行数据就必须注意。
      

  6.   

    兄弟看样你没理解  rownum的含义啊。  你的条件语句是不是加在  where 1=1  那了,你有order by如果你把你把你的语句括号上作为表查询  在外边写上  条件语句   就应该显示那个前10条了。可能我写的不够清楚,你去看看rownum的相关资料,再自己写几个语句试试不同的效果。