Forum OpenACS Q&A: Response to is there something like LIMIT for a query in Oracle?

There is a pseudo-field in Oracle called rownum which allows
you to find out what the # of the returned row is. For example:

select * from users where rownum =1;

will do what you're talking about.

Sadly, rownum has this interesting property: it gets set to the # of
the row at the stage of that row being *returned*. Thus, if you
were to do:

select * from users where rownum=2;

guess what? You'd get nothing. Because for there to be a row
with rownum=2, you need to have one with rownum=1 that
comes before it. However, you're preventing that first row from
being returned by having a rownum=2 where clause. Nasty, eh?
You have to use a subquery, something like:

select * from (select *, rownum as inner_rownum from users)
foo where foo.inner_rownum = 2;