ORACLE的ROWNUM

时间:2011-01-18 07:46:17

标签: oracle10g

我想在ORACLE 9i的第4位追溯记录。 我可以在WHERE子句中比较ROWNUM = 4吗?

3 个答案:

答案 0 :(得分:2)

不,在评估WHERE子句后分配ROWNUM,因此它不能“跳过”rownum一到三。

此外,它是在排序之前分配的。

这是Oracle最烦人的“功能”。他们确实需要实施LIMIT / OFFSET。

您需要执行类似

的操作
  select * from (
      select a.*, rownum rn from (
         select the_data from the_table order by the_order 
      ) a where rownum < 5
  ) where rn = 4

答案 1 :(得分:0)

SELECT * 
FROM  
( SELECT mt.mydata
  FROM myTable mt
  WHERE mt.myId = xxx
  ORDER BY mt.myDate DESC
) 
WHERE ROWNUM <= 10;

答案 2 :(得分:0)

你为什么不尝试这样的事情:)

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

这里tablename是表的名称,tn是分配给它的别名。

相关问题