ROWNUM IN ORACLE

后端 未结 3 1463
灰色年华
灰色年华 2021-01-29 09:24

I want to retrive record at 4th position in ORACLE 9i. Can I compare ROWNUM=4 in the WHERE clause??

相关标签:
3条回答
  • 2021-01-29 10:04

    No, ROWNUM is assigned after the WHERE clause is evaluated, so it cannot "skip" rownum one to three.

    Furthermore, it is assigned BEFORE sorting.

    This is the most annoying "feature" of Oracle. They really need to implement LIMIT/OFFSET.

    You need to do something like

      select * from (
          select a.*, rownum rn from (
             select the_data from the_table order by the_order 
          ) a where rownum < 5
      ) where rn = 4
    
    0 讨论(0)
  • 2021-01-29 10:11
    SELECT * 
    FROM  
    ( SELECT mt.mydata
      FROM myTable mt
      WHERE mt.myId = xxx
      ORDER BY mt.myDate DESC
    ) 
    WHERE ROWNUM <= 10;
    
    0 讨论(0)
  • 2021-01-29 10:20

    why don't you try something like this :)

    select * from (select rownum sn, tn.* from tablename tn ) where sn=4
    

    here tablename is the name of your table and tn is the alias assigned to it.

    0 讨论(0)
提交回复
热议问题