Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > MySQL -> Oracle


Автор: f00Gass 30.11.2006, 10:19
Есть следующий мускульный запрос:
Код
select * from `test` order by `id`desc limit 100, 50;

Как он будет выглядеть для оракла?

Заранее спасибо smile

Автор: Sqlninja 30.11.2006, 10:24
Код

select * from (select * from test order by id desc ) where rownum between 50 and 100

Автор: f00Gass 30.11.2006, 10:28
я писал такой же запрос

ORA-00907: missing right parenthesis (DBD ERROR: error possibly near <*> indicator at char 35 in 'select * from (select * from test <*>order by id desc) where rownum between 100 and 50')

Автор: ols 30.11.2006, 11:29
Код

select * from
(select t.*, row_number()over(order by id desc) rn from test t) 
where rn between 50 and 100


Автор: LSD 30.11.2006, 11:35
Sqlninja, твой запрос вернет 0 строк.

Правильно так:
Код
select * from (select t.*, rownum rnum from test t order by id desc ) where rnum between 50 and 100


Автор: ols 30.11.2006, 11:39
Цитата(LSD @ 30.11.2006,  11:35)
Sqlninja, твой запрос вернет 0 строк.

Правильно так:
Код
select * from (select t.*, rownum rnum from test t order by id desc ) where rnum between 50 and 100


а твой неправильный результат smile во всяком случае на 9.2.0.1 

<добавил>
сравни с 
Код

select * from 
    (select t.*, rownum rn from 
        (select * from test order by id desc ) t
    ) 
where rn between 50 and 100  

Автор: Sqlninja 30.11.2006, 12:39
Sorry guyz, результат не проверял.

Автор: f00Gass 30.11.2006, 17:59
Всем огромное спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)