我正在从我制作的交叉表中提取所有 column_names (cname1)。有数千个这样的列名,所以我将它们组合成一个数组。然后,我想使用动态 sql(或任何有效的方法)来使用这些 column_names 根据同一个交叉表的记录创建一个数组。我不断收到错误:
ERROR: missing "LOOP" at end of SQL expression
.
CREATE OR REPLACE FUNCTION mffcu.test_ty_hey()
RETURNS setof record
LANGUAGE plpgsql
AS $function$
Declare
cname1 text;
Begin
for cname1 in select array_agg(column_name) as useme
from(
select column_name::text
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'crosstab_183'
and ordinal_position != 1
) as fin
join mffcu.crosstab_183 a on fin.id = a.id;
loop
sql2 ='select distinct array['|| columnname ||'] from mffcu.crosstab_183';
execute sql2;
end loop;
END;
$function$
我一生都无法弄清楚为什么会出现此错误。