我有表tbl
,其中包含800行。我需要编写一个查询,其行如下200行:
1
SELECT id FROM tbl ORDER BY id OFFSET 100 LIMIT 200;
返回
id
----
101
.
.
.
300
没关系,但是
SELECT id FROM tbl ORDER BY id OFFSET 700 LIMIT 200;
返回
id
----
701
.
.
.
800
但我需要返回
id
----
701
.
.
.
800
1
2
.
.
.
100
如何修改查询,以便在我们到达结尾时从表的开头返回?是否可以不使用UNION
?
答案 0 :(得分:1)
我不知道怎么做而不使用union all,但我可能会使用以下内容:
with looped_table as (
( select id from tbl order by id )
union all
( select id from tbl order by id )
)
select id from looped_table offset 700 limit 200;