对于 Postgresql 函数(存储过程):
我希望存储过程能够根据传递的参数返回不同的表结构。粗略示例:
CREATE OR REPLACE FUNCTION getMyinfo(emp_id varchar, inc_status) RETURNS TABLE [don't know how to set this...???] AS $$ BEGIN if inc_status = false then return select fname, lname, emp_age from emp_data where id = emp_id; else return select fname, lname, emp_age, rev_code, m_stat where id = emp_id; end if; END $$
最佳答案
您可以将函数定义为 RETURNS SETOF record
,但随后您必须在使用该函数的每个查询中指定 record
的定义,因为定义必须在查询解析时已知。
为了避免这种情况,您可以使用 json
作为返回类型。
关于postgresql函数返回不同的表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48967807/