Выборка страницы
- From
- Sergiy Medvynskyy (2:5020/175.2)
- To
- All
- Date
- 2006-06-07T17:25:46Z
- Area
- SU.DBMS.SQL
From: "Sergiy Medvynskyy" <medvynskyy@xtramind.com>
Hi All,
Как ни напрягал свой тупой мозжечек, не смог найти решения для задачи. Мож
уважаемый Олл сумеет найти выход?
Есть отсортированная выборка из таблицы (запрос) и есть ключ элемента из
таблицы и есть размер страницы (скажем 100 элементов). Необходимо ограничить
отсортированную выборку так, что бы она возвращала записи со страницы на
которой находится элемент определяемый ключем.
Пример:
select ticket_id from ticket where customer_id=? ordered by creation_date
Необходимо дополнить запрос так, что бы возвращались ticket_id рассположенные
на странице где рассположена запись с ticket_id равным некоторому числу.
Подоплека всего:
Выборка в оригинале может возвратить сотни тысяч записей (из-за особенностей
бизнесс-процессов у некоторых клиентов - в 99,9% случаев там 1-5 записей).
Поэтому мы решили ограничить вывод записей страницами (скажем по 100 записей
на странице - задается пользователем). Вся сложность заключается в том, что
должна быть показана определенная страница, которая определяется с помощью ID
рассположенной на ней записи. Причем очень часто это последняя страница.
ЗЫ: По возможности без использования особенностей БД. Если это невозможно, то
для Oracle и MS SQL.
Sergiy Medvynskyy
--- ifmail v.2.15dev5
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)
SEEN-BY: 50/12 203 450/186 1024 451/30 454/9 4614/20 5000/5000 5001/5001
SEEN-BY: 5010/53 5011/13 5012/23 46 5015/28 5019/31 5020/175 400 545 639 715
SEEN-BY: 5020/758 830 1523 1604 2238 4441 5021/3 29 5022/128 5025/3 750
SEEN-BY: 5026/10 45 5027/12 5029/32 5030/473 556 966 1063 1080 1339 1900
SEEN-BY: 5035/38 5040/47 5042/13 5045/7 5047/47 5054/1 8 9 28 35 37 45 63 67
SEEN-BY: 5055/95 5059/9 5062/1 5077/70 5080/68 1003 5082/6 5083/21 5084/32
SEEN-BY: 5085/13 5090/106 5095/20 5096/18 5099/133
PATH: 5020/175 4441 545 5054/1 37