восстановить только вторую строку таблицы в Oracle? - PullRequest
3 голосов
/ 05 апреля 2011

Может кто-нибудь помочь, как извлечь именно 2-ую строку из таблицы в oracle?

Ответы [ 2 ]

11 голосов
/ 05 апреля 2011

Поскольку строки в таблице по сути неупорядочены, концепция «первый» и «второй» требует, чтобы вы указали какой-либо способ обеспечения порядка (т. Е. Предложение ORDER BY). Самый простой способ сделать это - использовать аналитическую функцию

SELECT *
  FROM (SELECT a.*,
               row_number() OVER (ORDER BY some_column) rn
          FROM your_table a)
 WHERE rn = 2;

Вы также можете использовать ROWNUM, хотя для этого требуется дополнительный уровень вложенности

SELECT *
  FROM (SELECT b.*, rownum rn
          FROM (SELECT *
                  FROM your_table a
                 ORDER BY some_column) b
         WHERE rownum <= 2)
 WHERE rn > 1
0 голосов
/ 05 апреля 2011

Спасибо за ваши ответы, теперь я нашел решение для этого,

      select * from
        (select rownum rn,column1,column2,...,columnn from tablename)
      where
         rn=2 

Теперь вы можете проверить это и оставить свои ценные комментарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...