在PostgreSQL中编写函数

时间:2015-07-15 14:14:56

标签: sql postgresql function

我是PostgreSQL的新手,并寻求帮助在PostgreSQL中编写函数。 我有以下sql查询

  1. Select * from Table1 where col1=x
  2. Select sum(T1.col1), T2.col2 from Table1 T1, Table2 T2 where T1.col1=T2.col1 and T1.col3= y
  3. 我想编写一个函数,我将传递参数(x, y),上面的查询应该出现在输出表中。我可以使用单个查询运行该函数。

    我想在一个函数中运行这两个查询。

1 个答案:

答案 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