首页 > 解决方案 > postgresql 函数中的动态列返回数

问题描述

CREATE OR REPLACE FUNCTION pcyc.mapp_func_test_dyna(mapp_tbl text,rec_type text,src_tbl text,map_cols_select text,map_tbl_col text,src_tbl_col text,conditions text,how_many integer) 
RETURNS table (col character variable)
AS $func$
begin
        return query
            execute format('SELECT %I from pcyc.%I, pcyc.%I as t2 where %I=t2.%I %s ' , map_cols_select, mapp_tbl,src_tbl, map_tbl_col,src_tbl_col, conditions);
END;
$func$
LANGUAGE plpgsql;

并将函数调用为:

select * from pcyc.mapp_func_test_dyna('tbl_mapping_profdesig','HCP','tbl_transactions_bkag','federalreportablecategory','professionaldesignation','pwc_profdesg',' and federalreportablecategory is not null')

我正在尝试通过 select 语句检索多个列,其中我将列作为参数“map_cols_select”传递,但“表(col 字符变量)”行使得仅返回一列成为可能。我如何动态获取多列作为返回。

我已经尝试过返回记录集,但它不起作用!请帮助我,卡在这个问题上很长时间了!!

标签: postgresqlfunction

解决方案


推荐阅读