![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выбор записей из нужной позиции. [D6]
Img © (2004-01-22 17:08:00)
Мастера, подскажите, пожалуйста, можно ли с помощью SQL выбрать из таблицы первые 30 записей, следующие 30 и т.д. и как это можно сделать, если ДА?
Спасибо.
Nikolay M. (2004-01-24 14:18:00) [1]
> Vemer ©
А Name у меня в WHERE и сортировке просто так жирным выделено? По какому полю сортируешь, по нему же и WHERE должно быть.
Vemer (2004-01-23 23:55:00) [2]
Вариант доработки предложения Nikolai M.
- Получить минимальный номер ID или первое имя (а имена можно так сравнивать?)
- делать запрос типа
SELECT TOP 20 Name FROM My_Table WHERE ID >= :ID ORDER BY Name
- По необходимости менять ID(Max(ID)+1/Min(ID)-1 из полученного набора сответственно), открывать заново..
-
Nikolay M. (2004-01-22 17:47:00) [3]
> в SQL такое редко реализуется. Не нужно оно там.
Уверен?
SELECT TOP 10 * FROM tTable WHERE Name> :Name ORDER BY Name
где :Name - значение поля Name, полученное из предыдущей пачки в 10 записей, на первой итерации оно либо равно "", но тогда в Name не должно быть пустых записей, либо вообще не использовать (на первой итерации) условие WHERE.
VAleksey (2004-01-22 17:29:00) [4]
Если ADO, то можно попробовать побаловаться со св-вом MaxRecords, хотя я не уверен, и это уже не SQL.
А в SQL такое редко реализуется. Не нужно оно там.
Sandman25 (2004-01-22 17:18:00) [5]
Вот с Access то я и не работал :(
select first 30 * from table
или
select top 30 * from table
или
select top 30 skip 180 * from table
Может, что-то и сработает :)
Img (2004-01-22 17:16:00) [6]
Access 2000
Sandman25 (2004-01-22 17:14:00) [7]
Какая СУБД?