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