|
Язык запросов - аналоги 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 не прокатит |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |