如何在Postgresql函数中输出多选结果?

时间:2013-07-25 11:02:34

标签: postgresql

我的功能如下:

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;

1 个答案:

答案 0 :(得分:2)

PostgreSQL不支持从单个命令返回多个结果集。

如果A,B和C中的选择以相同的格式返回数据,您可以简单地将它们全部UNION,将它们作为一个结果集返回。

如果他们以不同的格式返回数据,你仍然可以将它们联合起来,但是你需要添加大量的空值。

或者,让函数创建并填充一些临时表。然后执行该函数并从单独的命令中选择临时表。

作为最终选项,以某种方式返回编码的数据,例如使用row_to_json