![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL запросы
Krants © (2006-06-04 18:04:00)Задачка: Существует произвольная таблица (с полями field1, field2, ...,field[n]), требуется всего навсего отсортировать таблицу (к примеру ORDER BY field5, field2) и вывести записи в полученом порядке НАЧИНАЯс n-ой позиции (позиция задается числом), разумеется записи до позиции - невыводить.
Как можно решить данную задачку (желательно не редактируя данные таблицы)?
Sergey Masloff (2006-06-06 21:41:00) [1]вобщем типа того:
create table test(id number not null, primary key id);
begin
for i in 0..4999 loop
insert into test(id) values(i);
end loop;
end;
select t.id from test t
having ((select count(*) from test where id < t.id) >= :n)
group by t.id
вроде все в рамках SQL92 CORE так что должно работать везде. Хотя и извращение
Desdechado (2006-06-06 21:06:00) [2]SELECT ... FROM (SELECT ... )
tckb? конечно, в акцессе работает такое и есть какой-нибудь rownum
Krants (2006-06-06 00:08:00) [3]Воркаю просто с БД Access через компонент Query, поставленую задачку то решил(через перебрасывание данных по таблицам)... А вот как одним запросом это сделать...
evvcom (2006-06-05 08:47:00) [4]
> Как можно решить данную задачку
Для начала надо указать на чем СУБД.
Sergey Masloff (2006-06-04 22:28:00) [5]palva © (04.06.06 22:23) [1]
А если гипотетический сервер с командой ROWS_FROM или SKIP то еще проще. Но это врядли ответ на вопрос ;-)
Кстати в рамках SQL92 можно через HAVING извратиться но неэффективно будет. Зато работать везде будет.
palva (2006-06-04 22:23:00) [6]Если у вас MySQL, то вы можете включить в предложение SELECT инструкцию LIMIT. Например LIMIT 40,20 означает: пропустить 40 записей и выдать следующие 20.