Try:
create function foo(text) returns int4 as '
delcare
 tcount int4:=0;
begin
 for rec IN select title, dcount from songs where artist=$1 LOOP
     tcount:= tcount+rec.dcount;
 END LOOP;
 return tcount;
end;
' language 'plpgsql';


call it by:

db> select foo('Najm Hashmi');

it will return how many songs of 'Najm Hashmi' in your database.


Jie LIANG

St. Bernard Software
Internet Products Inc.

10350 Science Center Drive
Suite 100, San Diego, CA 92121
Office:(858)320-4873

[EMAIL PROTECTED]
www.stbernard.com
www.ipinc.com

On Sat, 10 Feb 2001, Najm Hashmi wrote:

> Jie Liang wrote:
> 
> > I just know you can use implict cursor inside the plpgsql
> > e.g
> > declare
> 
> result text;
> tcount int4;
> 
> >
> > rec record;
> > begin
> > FOR rec IN select_clause LOOP
> >      statements
> > END LOOP;
> > end;
> >
> 
> Thank you Jie for your help. I am bit confused about how it works. I want for
> each row , obtained by select statment,  get certain values and then do some
> calculations and out put that resulst  eg



>  for rec IN select title, dcount from songs where  artist='xyz'
>                  tcount:= tcount+rec.dcount;
> END LOOP;
>  return tcount;
> would this work ?
> Thanks again for your help.
> Regards, Najm
> 
> 

Reply via email to