select * from test where rownum=2

解决方案 »

  1.   

    luckysxn(风子) 兄:这样是不行的,rownum是检索后的行号,不能这样用
    使用子查询
    select * from (select rownum id,test.* from test) b where b.id = 2;
      

  2.   

    select * from test where rownum < 3
    minus
    select * from test where rownum < 2
      

  3.   

    luckysxn(风子) 的方法我用了一下,只有rownun=1时
    select * from test where rownum=1才能成功,
    设置rownum为其他值时均不成功(如设置成为2,3,4,0等)得到no rows selected的结果,但事实是我的机器里有好几条记录。
    用select * from (select rownum id,test.* from test) b where b.id = 2;可以得到未检索过的排序,设置id为1,2,3,4均有正确结果返回。
    我想问问,我想指定检索过后的行号,如何实现。
      

  4.   

    为什么不用bzszp(SongZip)兄的这种方法!
    是最好的
    select * from (select rownum id,test.* from test) b where b.id = 2;
      

  5.   

    我并没有否认bzszp(SongZip)兄的方法好,
    最主要的是我读出来的数据是已经检索过,
    因为我把某个字段使者成为了unique,
    那么我让客户看到的界面是排序检索过了的,
    但客户想查询时,肯定是对检索过的id进行检索,
    而这个id肯定不是数据库中真正的id号呀!
    请帮助我!
      

  6.   

    按照unique id排序,每次查询回传一个标志id,这样不就行了?