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

SELECT * FROM table_name WHERE ROWID=
(SELECT MAX(ROWID) FROM table_name
WHERE ROWNUM <= N
ORDER BY col1);
...
Рейтинг: 0 / 0
13.12.2002, 00:59
    #32078943
ShgGena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
N-ая запись в таблице: почему так трудно?
Код: 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
13.12.2002, 12:56
    #32079006
Walter
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
N-ая запись в таблице: почему так трудно?
To ShgGena:
тоже не работает, т.к. rm не соответствует номеру записи при сортировке.
...
Рейтинг: 0 / 0
13.12.2002, 13:14
    #32079012
DimaR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
N-ая запись в таблице: почему так трудно?
Вот блин достал

select * from abc
where rowid=
(select max(RR) from
(select rownum RN, ROWID RR from wares order by b)
where RN=:N
)
только смотря каких размеров таблица, а то будет тормозить,
если еще и подумать , то наверное можно лучше написать
...
Рейтинг: 0 / 0
13.12.2002, 13:19
    #32079014
DimaR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
N-ая запись в таблице: почему так трудно?
Точнее
Код: 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
13.12.2002, 14:02
    #32079028
noname_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
N-ая запись в таблице: почему так трудно?
Не работает, и не работает по следующей причине: ROWNUM присваевается выбираемым строкам до их сортировки. Проверить это просто...
...
Рейтинг: 0 / 0
13.12.2002, 15:12
    #32079050
DimaR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
N-ая запись в таблице: почему так трудно?
Ошибочка действительно,
"Если ничего не помогает прочтите инструкцию":)
Прочитал:
Код: 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
13.12.2002, 17:25
    #32079080
Walter
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
N-ая запись в таблице: почему так трудно?
DimaR, У тебя какая версия Oracle? У меня 8.1.7.2.1. Дает ошибку:
ORA-00439: Funktion nicht aktiviert: OLAP Windows Function
...
Рейтинг: 0 / 0
13.12.2002, 18:16
    #32079099
DimaR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
N-ая запись в таблице: почему так трудно?
Вот реальный запрос на котором проверял
(РАБОТАЕТ)
Код: 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
13.12.2002, 22:42
    #32079138
vskv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
N-ая запись в таблице: почему так трудно?
2DimaR: У тебя Enterprise, а у него нет. И OLAP функция "... over ..." недоступна.
...
Рейтинг: 0 / 0
15.12.2002, 01:18
    #32079194
Passant2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
N-ая запись в таблице: почему так трудно?
На www.it-ru.de

решена эта задача.
...
Рейтинг: 0 / 0
15.12.2002, 02:23
    #32079196
MajorN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
N-ая запись в таблице: почему так трудно?
Универсальный способ выборки диапазонов записей (работает с сортировкой):
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
15.12.2002, 10:58
    #32079259
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
N-ая запись в таблице: почему так трудно?
Большая просьба ко всем, не нужно раздувать опять одну и туже тему. Этот вопрос уже обсуждался в нашей конфе. Старайтесь вначале посмотреть то что уже есть. А тем кто отвечает - давайте линки. Вот линк на эту тему в этой конфе:\r
/topic/16583
...
Рейтинг: 0 / 0
15.12.2002, 16:34
    #32079479
MajorN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
N-ая запись в таблице: почему так трудно?
Извини, softbuilder@inbox.ru, за мою невнимательность.
В следующий раз, я постараюсь тщательно прочитать все 1419 топиков, перед тем как что-либо постить.
...
Рейтинг: 0 / 0
16.12.2002, 08:54
    #32079610
Rudyshin Sergey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
N-ая запись в таблице: почему так трудно?
Так трудно потому, что Вы работаете с реляционной базой данных, и в ней по определению записи не упорядочены :)
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / N-ая запись в таблице: почему так трудно? / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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