sql >> Base de Datos >  >> RDS >> PostgreSQL

Función PostgreSQL que devuelve múltiples conjuntos de resultados

Ha existido una forma más sencilla desde PostgreSQL 8.3 :

CREATE FUNCTION test()
  RETURNS SETOF first_table AS
$func$
BEGIN

RETURN QUERY
SELECT * FROM first_table;

RETURN QUERY
SELECT * FROM second_table;   -- has to return same rowtype as first_table!

END
$func$ LANGUAGE plpgsql;

Llamar:

SELECT * FROM test();

Ambos conjuntos de resultados se agregan a un solo conjunto devuelto por la función.
Consulte el manual para RETURN QUERY .