Re: What's wrong with this function

From: Jie Liang <jliang(at)ipinc(dot)com>
To: Najm Hashmi <najm(at)mondo-live(dot)com>
Cc: pgsql <pgsql-sql(at)postgresql(dot)org>
Subject: Re: What's wrong with this function
Date: 2001-02-09 21:43:41
Message-ID: Pine.BSF.4.10.10102091331420.35405-100000@tidal.ipinc.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

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

jliang(at)ipinc(dot)com
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
>
>

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Jie Liang 2001-02-09 22:11:28 Re: String Concatnation
Previous Message Stephan Szabo 2001-02-09 21:21:08 Re: String Concatnation