Выбор данной строки в таблице - PullRequest
0 голосов
/ 10 марта 2010

здесь простая проблема. У меня есть таблица из 500 строк и что бы иметь возможность выбрать данный номер строки n. Вот что я делаю:

    select *
    from table
    where table.arg1 ='A'
    and time_stamp=to_date('1/8/2010','MM/DD/YYYY')
    and rownum = n

Но это будет работать только для строки 1, в остальном ничего не возвращает. Есть идеи?

1 Ответ

4 голосов
/ 10 марта 2010

Причина, по которой where rownum = 3 возвращает пустой набор строк, заключается в том, что условие не является истинным для первой строки. Для второй строки все еще нет первой строки в наборе результатов, и rownum по-прежнему 1. Таким образом, условие снова не выполняется. См. эту страницу для более подробного объяснения.

Вы можете использовать row_number() в подзапросе:

select *
from (
    select row_number() over (order by col1) as rn, yt.* 
    from YourTable yt
) sub
where rn = 3

Или даже проще, но, возможно, более запутанно, используя rownum:

select *
from (
    select rownum as rn, yt.* 
    from YourTable yt
) sub
where rn = 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...