![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в SQL получить первые 10 записей из выборки [D6, Paradox]
SM © (2004-04-05 21:53:00)Ув. мастера, как в SQL получить первые 10 записей из выборки.
Заранее благодарен за помощь.
Rule (2004-04-06 10:28:00) [1]Ну ещё совет перейти на интербейз платформу (соверую фаерберд)
Vlad (2004-04-06 10:21:00) [2]Сорри, не увидел сразу, вопрос касался SQL...
sniknik (2004-04-06 10:19:00) [3]> но есть серьезные ограничения:
...
+
- выборка ограниченного таким образом рекордсета будет работать дольше чем получение полного.
Vlad (2004-04-06 10:19:00) [4]DataSet.OnFilterRecord:
Inc(i); // i - глобальная переменная
Accept:=(I<=10);
Единственное о чем нужно позаботиться, так это о том, чтобы переменная i строго обнулялась перед каждым открытием или Refresh'ем набора данных.
Deniz (2004-04-06 10:08:00) [5]Был такой прикол, но не 100%
пример для DBDEMOS выберет 3 первых записи
select a1.* from animals a1
where 3 > (select count(a2.name) from animals a2 where a1.name > a2.name)
order by a1.name
но есть серьезные ограничения:
- для сортировки по нескольким полям придется сильно потрудиться с условием where во вложенном запросе
- для повторяющихся значений в поле order by запрос может выдавать больше записей, чем нужно(пример по полю size)
Andriy Tysh (2004-04-06 09:59:00) [6]
ClientDataSet.PacketRecords:=10;
Zacho (2004-04-05 23:02:00) [7]
> S@shka © (05.04.04 22:55) [4]
В Local SQL ???
S@shka (2004-04-05 22:55:00) [8]select first 10 * from MY_TABLE;
Zacho (2004-04-05 22:18:00) [9]Отбразить и выбрать - разные вещи.
А вообще - уточняй условие.
И, я думаю, не помешает почитать что-нибудь по теории РСУБД
SM (2004-04-05 22:04:00) [10]Во засада. Как же тогда отобрать только нужное количество по определенному условию (например, 10 самых высоких)? А если под условие попадают пару тысяч. Зачем же такого монстра обрабатывать, если должен быть способ попроще (печенью чувствую - есть такой способ).
Zacho (2004-04-05 21:58:00) [11]В LocalSQL - никак. Да и не нужно, на самом деле.