我是PostgreSQL的新手,并寻求帮助在PostgreSQL中编写函数。 我有以下sql查询
Select * from Table1 where col1=x
Select sum(T1.col1), T2.col2 from Table1 T1, Table2 T2 where T1.col1=T2.col1 and T1.col3= y
我想编写一个函数,我将传递参数(x, y)
,上面的查询应该出现在输出表中。我可以使用单个查询运行该函数。
我想在一个函数中运行这两个查询。
答案 0 :(得分:0)
如果这两个结果是独立的,你最好创建分离的函数。
如果这些相关,那么您可以创建customType
并让您的函数返回set of customType
CREATE TYPE custom_type AS
(T1_int1 integer,
T1_int2 integer,
T2.sum integer,
T2.col2 integer
ALTER TYPE custom_type
OWNER TO postgres;
然后你创建你的功能
CREATE OR REPLACE FUNCTION MYFUNCTION(x numeric, y numeric)
RETURNS setof custom_type AS
$BODY$
DECLARE
sRow custom_type ;
BEGIN
SELECT T1_int1, T1_int2, T2.sum, T2.col2 into sRow
FROM
TABLE1 something join TABLE2 -- here i need to know more about your schema
RETURN sRow;
END;
$BODY$
更多信息Return more than one row of data from PL/pgSQL functions