Re: Concatenating multiple fetches into a single string

From: Tomasz Myrta <jasiek(at)klaster(dot)net>
To: Kumar <sgnerd(at)yahoo(dot)com(dot)sg>
Cc: psql <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Concatenating multiple fetches into a single string
Date: 2003-12-01 20:01:05
Message-ID: 3FCB9E01.6010405@klaster.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Dnia 2003-12-01 13:01, Użytkownik Kumar napisał:
> Dear Friends,
>
> I am doing a migration from SQL server to Postgres SQL. A simple select
> fetches the following names.
>
> select full_name FROM project_members where
> project_members.project_role_id in (' + @p_res_ids + ') ;
>
> Let us say if the results are
>
> full_name
> ---------------
> David
> Postgres
> plpgsql
>
> I need to send the out put as David,Postgres,Plsql -- one string,
> concatenates the fetches from multiple rows. This was handled in SQL
> server with a cursor.

I can't find simpler function (if I remember well, there is such one),
so there is my version of aggregate function you need:

create or replace function comma_aggregate(varchar,varchar) returns
varchar as '
begin
if length($1)>0 and length($2)>0 then
return $1 || '', '' || $2;
elsif length($2)>0 then
return $2;
end if;
return $1;
end;
' language 'plpgsql';

drop aggregate comma(varchar) cascade;
create aggregate comma (basetype=varchar, sfunc=comma_aggregate,
stype=varchar, initcond='' );

Regards,
Tomasz Myrta

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Peter Eisentraut 2003-12-01 20:48:00 Re: Permissions problem on 7.4
Previous Message Kumar 2003-12-01 12:01:07 Concatenating multiple fetches into a single string