ROWNUM IN ORACLE

2019-03-07 06:47发布

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

标签: oracle10g
3条回答
祖国的老花朵
2楼-- · 2019-03-07 07:23

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
查看更多
不美不萌又怎样
3楼-- · 2019-03-07 07:24
SELECT * 
FROM  
( SELECT mt.mydata
  FROM myTable mt
  WHERE mt.myId = xxx
  ORDER BY mt.myDate DESC
) 
WHERE ROWNUM <= 10;
查看更多
The star\"
4楼-- · 2019-03-07 07:33

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.

查看更多
登录 后发表回答