Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Чайник
Зарегистрирован: 08.08.2002 Сообщения: 98 Откуда: Пермь
|
Добавлено: Вт Июн 10 2003 23:11 Заголовок сообщения: Помогите написать select!!!!!!!!!!!!11 |
|
|
Помогите написать "хороший" select
есть таблица my_table(id,name,create_date) нужно сделать запрос на все строки с 10 по 20 отсортировывая по дате
Я делаю вот как:
select mt.name from my_table mt, (select v.id, rownum rn from (select id from my_table order by create_date) v ) main_view where mt.id = main_view.id and main_view.rn>10 and main_view.rn |
|
Вернуться к началу |
|
|
Valera Гость
|
Добавлено: Ср Июн 11 2003 03:43 Заголовок сообщения: Фигня! Нельзя в "хорошем" selecte обращаться к номерам записей напрямую (-) |
|
|
- |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Ср Июн 11 2003 10:25 Заголовок сообщения: А напрямую никто и не планирует. Нужны диапазоны строк. Ну примерно как в поисковом сервере (-) |
|
|
- |
|
Вернуться к началу |
|
|
Чайник
Зарегистрирован: 08.08.2002 Сообщения: 98 Откуда: Пермь
|
Добавлено: Ср Июн 11 2003 10:29 Заголовок сообщения: это просто пример блин диапазон задавться будет |
|
|
- |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Ср Июн 11 2003 15:12 Заголовок сообщения: Попробуй (в предположении, что id уникальны) |
|
|
select * from ( select top 20 * from my_table order by create_date ) where id not in ( select top 10 id from my_table order by create_date ) ; |
|
Вернуться к началу |
|
|
_ Гость
|
Добавлено: Ср Июн 11 2003 19:37 Заголовок сообщения: А по-моему(+)... |
|
|
По-моему с если дипазон будет меняться проще написать хранимую процедуру, завести там переменную и наращивая её в ФОРе взять нужный диапазон... А СЕЛЕКТ сделаешь из хранимой процедуры... Или надо простой СЕЛЕКТ?.. |
|
Вернуться к началу |
|
|
Чайник
Зарегистрирован: 08.08.2002 Сообщения: 98 Откуда: Пермь
|
Добавлено: Ср Июн 11 2003 20:23 Заголовок сообщения: Ну ты гигант мысли |
|
|
Ага... а если 1000000 записей в таблице, то ты их все в процедуре for'ом хранить будешь. ...
Здесь нужно использовать индексы, если кто знает как это реализовать помогите Pls |
|
Вернуться к началу |
|
|
Бочкарев Вячеслав Гость
|
Добавлено: Пн Июн 16 2003 14:20 Заголовок сообщения: По разному можно сделать. Под какую базу запрос надо? (-) |
|
|
- |
|
Вернуться к началу |
|
|
vfdim Гость
|
Добавлено: Ср Июл 02 2003 09:22 Заголовок сообщения: Re: Помогите написать select!!!!!!!!!!!!11 |
|
|
select * from (select rownum rnum ,a.* from ( select * from [TABLE]) a /*ВАШ_ЗАПРОС -- включая конструкцию order by)*/ where rownum = [N_START] |
|
Вернуться к началу |
|
|
|