如何在PostgreSQL的for循环中使用for循环

xvw2m8pv  于 2023-01-25  发布在  PostgreSQL
关注(0)|答案(1)|浏览(255)

如果我需要两个循环的并行值,比如(i,j)=(1,1),(2,2),(3,3),如何在for循环中使用for循环
我试过用这段代码-

FOR i IN COALESCE(ARRAY_LOWER(ids, 1), 1) .. COALESCE(ARRAY_UPPER(ids, 1), 0)
LOOP
FOR j IN COALESCE(ARRAY_LOWER(cids, 1), 1) .. COALESCE(ARRAY_UPPER(cids, 1), 0)
LOOP
 --add the link between id and cids
INSERT INTO intervals (
                columns)
              VALUES (
                      --cid[j],
                      --id[i]
                     );
biswetbf

biswetbf1#

我们不太清楚您要做什么,但是如果您只是想将两个一维数组的笛卡尔积插入到表中,那么您只需要一个CROSS JOIN
demo:db<>fiddle

INSERT INTO intervals (column_a, columnb)

SELECT 
    ids,
    cids
FROM unnest(ids) as ids            -- 1
CROSS JOIN unnest(cids) as cids
  1. unnest()将数组元素提取到单行中。

相关问题