比如满足条件的有10条,我只查8条,这样来节省一些时间

解决方案 »

  1.   

    sl   ...
    fr (sl where rownum <=8)
    ....
      

  2.   

    select * 
      from (select * from table where 条件 and rownum<=8)
      

  3.   

    select * from 表 where rownum <= 8 
    其他条件自己加
      

  4.   

    注意:rownum只能用符号(<、<=、!=)。 
                select * from tablename where rownum != 10;返回的是前9条记录。 
                不能用:>,>=,=,Between...and。由于rownum是一个总是从1开始的伪列,Oracle 认为这种条件 只能用
    select *
    from table_name
    where rownum < N
    minus
    select *
    from table_name
    where rownum < M就可以选中 M 与 N之间的。rownum是伪列,代表已经查询到的记录的行序号。还未查到的记录是没有rownum的。
    因此ROWNUM>=1 AND ROWNUM<=10是可以查到前10条记录但是不能证明
    ROWNUM>=500 AND ROWNUM<=600可以查处500~600的501条记录。
    ROWNUM>=1 AND ROWNUM<=10在逻辑上相当于ROWNUM<=10
    正确的方法是:
    select * from (select Z_YXJK_DMDH.*, rownum as rid from Z_YXJK_DMDH where rownum<=600) where rid > 500
    或者
    select * from Z_YXJK_DMDH where rownum<=600
    minus
    select * from Z_YXJK_DMDH where rownum<=500