Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо