ROWNUM в ORACLE - PullRequest
       10

ROWNUM в ORACLE

0 голосов
/ 18 января 2011

Я хочу получить запись на 4-й позиции в ORACLE 9i. Могу ли я сравнить ROWNUM = 4 в предложении WHERE ??

Ответы [ 3 ]

2 голосов
/ 18 января 2011

Нет, ROWNUM назначается после оценки предложения WHERE, поэтому он не может "пропустить" rownum от одного до трех.

Кроме того, он назначается ДО сортировки.

Это самая раздражающая «особенность» Oracle. Им действительно нужно реализовать LIMIT / OFFSET.

Вам нужно сделать что-то вроде

  select * from (
      select a.*, rownum rn from (
         select the_data from the_table order by the_order 
      ) a where rownum < 5
  ) where rn = 4
0 голосов
/ 04 февраля 2018

почему бы вам не попробовать что-то вроде этого:)

select * from (select rownum sn, tn.* from tablename tn ) where sn=4

здесь tablename - это имя вашей таблицы, а tn - назначенный ей псевдоним.

0 голосов
/ 08 января 2015
SELECT * 
FROM  
( SELECT mt.mydata
  FROM myTable mt
  WHERE mt.myId = xxx
  ORDER BY mt.myDate DESC
) 
WHERE ROWNUM <= 10;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...