如何解决PostgreSQL 按顺序生成结果
我想像 python 生成器一样从 Postgresql 数据库中依次给出结果。 当每次我想从行中返回新的 10 行时调用函数 get_data。
create sequence an_iter
increment by 10;
- 将序列增加 10
- 返回大于 序列的当前值(限制为 10)
我的函数定义:
CREATE OR REPLACE FUNCTION public.get_data()
RETURNS SetoF ppdb
LANGUAGE plpgsql AS
$func$
declare
val integer := 0;
BEGIN
select nextval('an_iter') into val;
Return Query SELECT * from ppdb where i<= val+10 limit 10;
END
$func$;
解决方法
您是否尝试过使用 BETWEEN
?这样做你可以摆脱LIMIT 10
,例如
CREATE OR REPLACE FUNCTION public.get_data()
RETURNS SETOF ppdb
LANGUAGE plpgsql AS
$func$
declare
val integer := 0;
BEGIN
SELECT nextval('an_iter') INTO val;
RETURN QUERY SELECT * FROM ppdb
WHERE i BETWEEN val AND val+10;
END
$func$;
演示:db<>fiddle
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。