在oracle查询中获取有限的条件

时间:2014-05-06 13:13:45

标签: sql database oracle oracle10g

我需要更改下面的查询,以获取前5个最新用户,而不仅仅是最近的单个用户。但是由于sql不允许LIMIT就像可以在mysql中完成,我准备了这个:

SELECT * FROM users WHERE joined in (select max(joined) from users)

这会抓住我最近的用户,但无法理解我如何将其扩展到最近的5位用户。

2 个答案:

答案 0 :(得分:3)

这样的事情一定对你有用:

      SELECT * FROM (select * from users order by joined DESC) u where rownum<=5

如果您从已经订购的数据中选择,则rownum将对应于最新日期。

答案 1 :(得分:1)

SELECT m.* 
FROM (SELECT u.*
           , rank() OVER (ORDER BY u.joined) r 
      FROM users u) m 
WHERE r BETWEEN 0 AND 5 
ORDER BY m.joined