如何在PostgresQL中的for循环范围内传递动态值

问题描述 投票:0回答:1

for i in 1..(select pays from schema.table_name where pk_id='12AS' and pk2_id='111212123' ) 仅适用于此特定记录。如何对函数中的所有记录进行操作?

在没有 where 条件的情况下传递时出现以下错误

错误:用作表达式的子查询返回不止一行

注意。我正在使用 for 循环来迭代已完成的 n 次付款的记录。例如,如果付款次数为 50,则对于与其他字段的主键组合应迭代 50 行,并且这需要继续用于下一个主键组合

错误:用作表达式的子查询返回不止一行

postgresql
1个回答
0
投票

您正在为 PL/pgSQL

FOR
循环混合两种不同的语法变体。

这有效:

DO
$do$
DECLARE
   i int;
BEGIN
   FOR i IN                                -- !
      SELECT FROM generate_series(1,10) g  -- !
   LOOP
      RAISE NOTICE 'i';
   END LOOP;
END
$do$;
© www.soinside.com 2019 - 2024. All rights reserved.