0

我有一个功能:

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;
4

1 回答 1

2

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

如果从 A、B 和 C 中的选择以相同的格式返回数据,您可以简单地将它们联合在一起,将它们作为一个结果集返回。

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

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

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

于 2013-07-25T11:17:11.067 回答