Thread: Return a set of values from postgres Function

Return a set of values from postgres Function

From
"Derrick Betts"
Date:
I want to get a set of values returned from a function.  The values (there will need to be four of them) come from 4 separate SELECT statements inside the Function.  For example SELECT one INTO variable1 from table1 where ...    then SELECT two INTO variable2 from table1 where...   At first you might think I could just combine the select statements into one statement, but I can't.  I need to pass the results of each separate select statement into distinct variables and return them together to the application.
 
This is what I'm using but isn't working....
 

create function allincomes(int4) RETURNS setof RECORD AS '

declare

vResult RECORD;

begin

select into vResult CAST(monthly AS varchar) as w2client

from income

where caseid = $1

and incometype = ''W2''

and who = ''Client'';

select into vResult CAST(monthly AS varchar) as selfemployedclient

from income

where caseid = $1

and incometype = ''Self Employed''

and who = ''Client'';

return ;

end;

'

language 'plpgsql';

 
Any ideas?
 
Thanks,
Derrick

Re: Return a set of values from postgres Function

From
Stephan Szabo
Date:
On Thu, 17 Jul 2003, Derrick Betts wrote:

> I want to get a set of values returned from a function.  The values
> (there will need to be four of them) come from 4 separate SELECT
> statements inside the Function.  For example SELECT one INTO variable1
> from table1 where ...  then SELECT two INTO variable2 from table1
> where...  At first you might think I could just combine the select
> statements into one statement, but I can't.  I need to pass the
> results of each separate select statement into distinct variables and
> return them together to the application.

I'd suggest reading one of the items on the set returning functions:

http://www.varlena.com/GeneralBits/26.html
http://techdocs.postgresql.org/guides/SetReturningFunctions