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

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

Как в 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 - никак. Да и не нужно, на самом деле.


Наверх

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