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;