postgresql 遍历参数_如何在postgresql函数中使用变量进行循环查询

本文介绍如何在PostgreSQL 9.4.4版本的函数中使用变量进行循环查询。示例展示了在FOR循环中遍历带有动态表名、符号、开始和结束时间的查询,以实现更灵活的功能调用。问题在于作者尝试根据传入的参数动态构建查询,但遇到了返回空白结果的问题。寻求解决方案。
摘要由CSDN通过智能技术生成

我在

postgresql(版本9.4.4)中有一个相当复杂的功能,我需要一些帮助.

我在我的函数中声明了一个循环(下面有大量工作):

CREATE OR REPLACE function getRSI(

psymbol varchar,pstarttime timestamp with time zone,pendtime timestamp with time zone,pduration double precision,ptable varchar

)

RETURNS SETOF rsi AS

$BODY$

declare

row_data record;

-- some variables

begin

FOR row_data IN SELECT datetime,value FROM "4" WHERE symbol = 'AAPL'

AND datetime BETWEEN '2015-11-23 09:30:00 -0500' AND

'2015-11-23 15:59:59-0500' LOOP

-- enter code here

END LOOP;

end

$BODY$LANGUAGE plpgsql

这很完美,我可以得到我的功能的结果,并让它为我的所有数字.

我想让循环像这样工作:

FOR row_data in select datetime,value from quote_ident(ptable)

where symbol = quote_literal(psymbol) and datetime

between quote_literal(pstarttime) AND quote_literal(pendtime) LOOP

其中ptable,psymbol,pstarttime和pendtime是从函数调用传递的变量.

但我很乐意对表进行硬编码,并根据变量得到其他三个东西:

FOR row_data in select datetime,value from "4" where symbol =

quote_literal(psymbol) and datetime between quote_literal(pstarttime)

AND quote_literal(pendtime) LOOP

是的,我知道我有一个以数字命名的表,在我当前的设置中我无能为力.

当我尝试使用上述任一设置调用该函数时,我只是得到一个空白.任何帮助,将不胜感激.我找不到任何关于在for循环中使用变量的文档,因此可能无法实现.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值