select * from tab_name where rownum<21
minus
select * from tab_name where rownum<11;

解决方案 »

  1.   

    select * from (select * from tab_name where rownum<21 order by rownum desc) where rownum<11;
      

  2.   

    谢谢了,我还一直在考虑用rowid呢,而且试验了rownum,可是看到它是一个动态的结果,是随机变化的,所以就没有用rownum,
      

  3.   

    rowid也不行呀,他也只是记录这记录存放的地址,通过rowid来查询只能提高速度呀:
    至于你所说的11到20条记录,ORACLE INSERT 的时候是随即存储的,如果这样你只能INSERT的时候通过一个增加一个流水字段(ID)来取得,,如1,2,3
      

  4.   

    要是我在读取的时候,有人在数据库中插入了一条记录,这样做的结果,会不会使rownum重新排序啊,从而扰乱了原来的取值啊!
      

  5.   

    to LGQDUCKY(飘) 
    不可能要求增加流水字段的,如果增加流水字段,就不用rowid或者rownum了
      

  6.   

    to Thomas_xufd(阿未)
    如果你想返回物理表的n到m行记录,应该用rowid
    如果你想返回逻辑表的n到m行记录,应该用流水号
    如果你想返回结果集的n到m行记录,应该用rownum