Я пытаюсь построить что-то вроде следующего запроса, используя jooq api.Могу ли я построить запрос jooq в смещение?
select x.*
from x
offset greatest(0, (select count(*) - 1 from x));
по
select(x.fields()).from(x)
.offset(param(greatest(val(0), select(count().sub(1)).from(x).field(0, Integer.class))))
Я уверен, что я использую метод offset(Param<Integer>)
неправильно. Кажется, что для смещения получается null
. Является ли создание смещений так, как это может сделать jooq? (Похоже, что метод offset
немного ограничен в том, что он может сделать, по сравнению с остальной частью jooq api.)
(Я знаю, что этот запрос без контекста кажется неэффективным, но это на самом деле то, что я хочу делать .)
Спасибо!
Вопрос: Вы можете сделать это в своей базе данных? (какая у вас база данных?) –
Да. Можете сделать это в postgres. Я на самом деле делаю это с помощью CTE, но получается, что это не ограничивается CTE. – dsmith