powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / N-ая запись в таблице: почему так трудно?
17 сообщений из 17, страница 1 из 1
N-ая запись в таблице: почему так трудно?
    #32078873
Walter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почитал на форумах много информации, о том почему это сделать нельзя. И все таки: какой самый простой способ получить N-ую запись? Желательно, для версии 8.1.7.2.1 и выше
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32078880
noname_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT * FROM table_name WHERE ROWID=(SELECT MAX(ROWID) FROM table_name WHERE ROWNUM <= N);
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32078885
Walter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Жалко, что с ORDER BY не работает:

SELECT * FROM table_name WHERE ROWID=
(SELECT MAX(ROWID) FROM table_name
WHERE ROWNUM <= N
ORDER BY col1);
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32078943
ShgGena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
select * from
( select a,b,c, rownum rm 
  from abc
  order by b)
WHERE RM = N
;
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32079006
Walter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To ShgGena:
тоже не работает, т.к. rm не соответствует номеру записи при сортировке.
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32079012
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот блин достал

select * from abc
where rowid=
(select max(RR) from
(select rownum RN, ROWID RR from wares order by b)
where RN=:N
)
только смотря каких размеров таблица, а то будет тормозить,
если еще и подумать , то наверное можно лучше написать
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32079014
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точнее
Код: plaintext
1.
2.
3.
4.
5.
select * from abc
  where rowid=
    (select RR from 
       (select rownum RN, ROWID RR  from wares order by b)
       where RN=:N
    )
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32079028
noname_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не работает, и не работает по следующей причине: ROWNUM присваевается выбираемым строкам до их сортировки. Проверить это просто...
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32079050
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибочка действительно,
"Если ничего не помогает прочтите инструкцию":)
Прочитал:
Код: plaintext
1.
2.
3.
4.
select * from
  (select t.*, ROW_NUMBER() over(order by code_wares) as RN  
     from wares t)
  where RN=:N;
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32079080
Walter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaR, У тебя какая версия Oracle? У меня 8.1.7.2.1. Дает ошибку:
ORA-00439: Funktion nicht aktiviert: OLAP Windows Function
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32079099
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот реальный запрос на котором проверял
(РАБОТАЕТ)
Код: plaintext
1.
2.
select * from  
  (select  t.*, ROW_NUMBER() over(order by code_wares) as RN from wares t)
where RN=:N;


на версиях
8i EE 8.1.6.3.0
9i EE 9.2.0.1.0
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32079138
vskv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2DimaR: У тебя Enterprise, а у него нет. И OLAP функция "... over ..." недоступна.
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32079194
Passant2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На www.it-ru.de

решена эта задача.
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32079196
MajorN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Универсальный способ выборки диапазонов записей (работает с сортировкой):
select * from ( select p1.*, rownum rnum from (select F1, F2 from Table1 WHERE F1= 'Val1' ORDER BY F2) p1 WHERE rownum <= 100) where rnum >= 50
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32079259
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большая просьба ко всем, не нужно раздувать опять одну и туже тему. Этот вопрос уже обсуждался в нашей конфе. Старайтесь вначале посмотреть то что уже есть. А тем кто отвечает - давайте линки. Вот линк на эту тему в этой конфе:\r
/topic/16583
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32079479
MajorN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извини, softbuilder@inbox.ru, за мою невнимательность.
В следующий раз, я постараюсь тщательно прочитать все 1419 топиков, перед тем как что-либо постить.
...
Рейтинг: 0 / 0
N-ая запись в таблице: почему так трудно?
    #32079610
Rudyshin Sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так трудно потому, что Вы работаете с реляционной базой данных, и в ней по определению записи не упорядочены :)
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / N-ая запись в таблице: почему так трудно?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]