我的功能如下:
CREATE OR REPLACE FUNCTION f_compare_data_extract(tm_id_1 integer,tm_subid_1 integer,tm_id_2 integer,tm_subid_2 integer ) RETURNS integer AS $$
BEGIN
--Select * from A;
--Select * from B;
--Select * from C;
RETURN 0;
END
$$ LANGUAGE 'plpgsql' ;
我在运行函数时想要3个查询的输出结果:
SELECT f_compare_data_extract(13,2967,13,2968);
Select * from A;
Select * from B;
Select * from C;
答案 0 :(得分:2)
PostgreSQL不支持从单个命令返回多个结果集。
如果A,B和C中的选择以相同的格式返回数据,您可以简单地将它们全部UNION,将它们作为一个结果集返回。
如果他们以不同的格式返回数据,你仍然可以将它们联合起来,但是你需要添加大量的空值。
或者,让函数创建并填充一些临时表。然后执行该函数并从单独的命令中选择临时表。
作为最终选项,以某种方式返回编码的数据,例如使用row_to_json