Имя: Пароль:
1C
1С v8
Язык запросов - аналоги SQL OFFSET и SKIP
0 goodzone
 
28.05.17
13:36
Есть ли в языке запросов аналогичная функциональность?
1 PR
 
28.05.17
13:41
5 лет стажа
2 goodzone
 
28.05.17
13:44
(1) Знаю что нету, но может кто-то что-то умное подскажет?
3 PR
 
28.05.17
13:47
(2) Зачем тогда спрашиваешь, есть ли?
Выбирай из запроса с сортировкой по какому-то полю первые Х, потом первые Х с условием на больше или равно, чем последнее значение поля сортировки.
4 goodzone
 
28.05.17
13:52
(3) А если в результате более 100 тысяч элементов?! ... Строим запрос с обратной сортировкой требуемой, и выбираем первые SKIP строк, затем сортируем заданной сортировкой.
5 PR
 
28.05.17
14:12
(4) Какая-то высосанная из пальца история
Типа а вот представим, что у меня запрос по справочнику людей на земном шаре и нужно выбрать 10 человек после первого, у кого в фотографии глаза красные
6 NorthWind
 
28.05.17
15:22
(5) не то чтобы высосанная. Такая выборка является стандартом для web, где принято показывать множество элементов на страницах 1 2 3 4 5 > ... и подобный механизм как раз этим оффсетом и реализуется.

В традиционно используемом для вебе MySQL он был с незапамятных времен.
7 NorthWind
 
28.05.17
15:23
но вот зачем это может понадобиться в 1С - я взять в толк, чесскть, не могу.
8 МихаилМ
 
28.05.17
16:18
9 Aleksey
 
28.05.17
16:23
Преходи на SQLite там это реализовано
Ну или подключи таблицу 1С как внешнюю и фигач прямые SQL запросы
10 МихаилМ
 
28.05.17
16:25
+(8) там не то
вот v8: запрос в цикле
11 PR
 
28.05.17
16:51
(6) Ну так добавь реквизит в таблицу и по нему отбирай
12 KAO111
 
28.05.17
19:28
в OData еще есть $skip
13 Serginio1
 
28.05.17
19:34
Можно используя Первые и Последние
https://stackoverflow.com/questions/758186/how-to-get-n-rows-starting-from-row-m-from-sorted-table-in-t-sql

SELECT * FROM
(SELECT TOP (N) * FROM
      (SELECT TOP (M + N - 1)  FROM Table ORDER BY MyColumn) qasc
  ORDER BY MyColumn DESC) qdesc
ORDER BY MyColumn

Где M это аналог OFFSET , а N это Skip

То есть сначала отбираем все записи м+n-1, а из них последние n
14 dmitryds
 
28.05.17
21:22
(0) select первые плюс ид не в (select первые 100
15 МихаилМ
 
28.05.17
21:24
(14) плохо .индекс не эффективно будет работать
16 Неверный Параметр И
 
28.05.17
21:27
А тупо запоминать ид начала и конца текущей страницы и выбирать, например, первые размер страницы где ид > предыдущий конец и запоминать новый конец и начало уже не модно? Надо обязательно не попадать в индекс и парить мозг?
17 dmitryds
 
28.05.17
21:31
(15) обычно ид индексирован

(16) для guid не прокатит
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший