我想在ORACLE 9i的第4位追溯记录。 我可以在WHERE子句中比较ROWNUM = 4吗?
答案 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是分配给它的别名。