oracle,在第一列设置了主键select * from INSTALLEDTABLE where rownum between 1 and 3,可以搜索到1,2,3行,问题是
select * from INSTALLEDTABLE where rownum between 2 and 3,如果搜索条件不包括第一行,
将搜索不到任何结果!

解决方案 »

  1.   

    rownum 一些使用心得2006-07-17 09:52总结自己对使用 rownum 的一些理解:rownum 是伪列,是系统加上的,不是真实存在的列,所以:1.  select * from tab_name where rownum<10 and rownum>1 
         查询语句查询不到结果,理由:对于rownum <10 的纪录中的第一条记录而言, rownum  = 1 ,条件rownum >1 就把这条记录排除了,那么由于第一条记录被排除了那么导致第二条记录的rownum=1 ,仍然还是被排除了,直到最后一条记录都是被排除掉的;2.  select * from term where rownum<=10 and rownum>1
         查询语句查询不到结果,理由同上;3.  select * from term where rownum<=10 and rownum>=1
         可以查询到结果,rownum <= 10 取得的时前10条记录,都满足条件rownum >= 1,所以得到10条记录;4.  select * from term where rownum<10 and rownum>=1
         可以查询到结果,rownum < 10 取得的时前9条记录,都满足条件rownum >= 1,所以得到9条记录; 
      

  2.   

    个人理解, rownum 是返回从第一条记录开始到 rownum 的行数, 不是第几行 .
      

  3.   

    不懂oracle
    但是sql server里一般是这样做的select top 2 * from INSTALLEDTABLE where 主键 
        not in (select top 1 主键 from INSTALLEDTABLE)
      

  4.   

    select * from INSTALLEDTABLE where rownum<=8
    minus
    select * from INSTALLEDTABLE where rownum<=7
    这样就可以选中第8行感谢arine8086(Marine);