我想查询oracle表中某项指定的记录,比如说第100项,但是这个表里面没有记录数量的字段,请问怎么做呢?

解决方案 »

  1.   

    SQL> select * from test;     FLD_ID FLD_NAME
    ----------- ------------------------------
              1 a
              2 b
              3 c
              4 d
              5 a
              6 f
              7 g
              8 h
              9 i
             10 j10 rows selectedSQL> select * from test where dbms_rowid.rowid_row_number(rowid)=6;     FLD_ID FLD_NAME
    ----------- ------------------------------
              7 gSQL> select * from test where dbms_rowid.rowid_row_number(rowid)=4;     FLD_ID FLD_NAME
    ----------- ------------------------------
              5 a对于第100行记录来说:
    select * from table_name where dbms_rowid.rowid_row_number(rowid)=99;
    建议你多测试一下。
      

  2.   

    Sorry,以上语句对于只有几条数据的表查询来说是成立的,但对于大数据量来说就无能为力了。只好再找一种可行的方法了 :)
      

  3.   

    仍然利用伪列rownum来实现就可以了:
    SQL> SELECT renum,owner,table_name FROM (SELECT ROWNUM renum,a.owner,a.table_name FROM Dba_Tables a) WHERE renum=100;     RENUM OWNER                          TABLE_NAME
    ---------- ------------------------------ ------------------------------
           100 SYS                            INDSUBPART$但是如果字段被order by,最后的结果与没有被order by会不一样,这点要注意.