PostgreSQL中使用字符串的for循环

3

我在这里尝试使用,连接字符串:

CREATE FUNCTION looping() RETURNS TABLE(round text)
DECLARE
  i RECORD;
BEGIN

FOR i IN select regexp_split_to_table('33,55,66,88', ',') as "asd"
LOOP
  str:= str || ',' ||(select  i."asd");
END LOOP;

END;
$$ LANGUAGE plpgsql; 

这是真的还是我漏看了什么?


你打算在哪里使用 'str' 变量?除了循环中以外你没有声明或使用过它。 - SpliFF
1个回答

6
通常,使用标准SQL函数进行一组基于集合的操作比循环更优。
但是,如果您需要在plpgsql中使用控制结构,则可以像这样处理(有多种方法):
CREATE FUNCTION f_loop2(OUT str text)
  RETURNS text AS
$func$
DECLARE
   i text;
BEGIN
str := '';

FOR i IN
   SELECT regexp_split_to_table('33,55,66,88', ',')
LOOP
  str :=  str || ',' || i;
END LOOP;

END
$func$ LANGUAGE plpgsql; 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接