В ASE 12.5.1 и более поздних версиях это можно сделать с помощью «Производной таблицы SQL» или «Встроенного представления». Запрос требует, чтобы каждая строка имела уникальный ключ, чтобы таблица могла быть соединена сама с собой, и может быть возвращено количество строк, в которых значение ключа меньше, чем у соединяемой строки. Это дает монотонно возрастающее число, с помощью которого можно указать предел и смещение.
Эквивалентами limit и offset являются значения, сравниваемые с x.rowcounter.
select
x.rowcounter,
x.error,
x.severity
from
(
select
t1.error,
t1.severity,
t1.description,
count(t2.error) as rowcounter
from
master..sysmessages t1,
master..sysmessages t2
where
t1.error >= t2.error
group by
t1.error,
t1.severity,
t1.description
) x
where
x.rowcounter >= 50
and x.rowcounter < 100
Производные таблицы SQL доступны еще в Sybase ASE 12.5.1, Производные таблицы SQL
Использование master..sysmessages в этом примере обеспечивает приемлемый (10 000 строк) набор данных для экспериментов.
person
Richard Crossley
schedule
27.08.2019
limit/offset
не появляется до ASE 16.x - person markp-fuso   schedule 23.08.2019