有没有办法获取一张桌子并从起点选择10条记录,但是如果到达了表格的末尾,请回到开头?因此,一个包含100条记录的表格,从记录95开始选择10条记录将是95-100和1-4。
答案 0 :(得分:0)
假设您有一个包含记录编号的列,那么您可以使用算术来定义顺序:
select t.*
from table t
order by (recnum + (100 - 95)) % 100) ;
如果不是:
select t.*
from table t cross join (select count(*) as cnt from t) x
order by (recnum + (x.cnt - 95)) % x.cnt) ;
如果您的记录没有按顺序编号,则可以添加数字:
select t.*
from (select t.*, count(*) over () as cnt,
row_number() over (order by recnum) as seqnum
from table t
) t
order by (seqnum + (cnt - 95)) % cnt) ;