Michael A Nachbaur wrote:
Source             Target
[EMAIL PROTECTED]   [EMAIL PROTECTED],[EMAIL PROTECTED],....


It isn't clear from your description what you want (to me, anyway), but I'd guess something like this:


regression=# select * from src2tgt;
   source    |      target
-------------+------------------
 [EMAIL PROTECTED] | [EMAIL PROTECTED]
 [EMAIL PROTECTED] | [EMAIL PROTECTED]
 [EMAIL PROTECTED] | [EMAIL PROTECTED]
 [EMAIL PROTECTED] | [EMAIL PROTECTED]
(4 rows)

create or replace function mylist(text,text) returns text as '
declare
  result text;
begin
  if $1 = '''' then
    result := $2;
  else
    result := $1 || '','' || $2;
  end if;
  return result;
end;
' language 'plpgsql';

create aggregate tgtlist
(
  BASETYPE = text,
  SFUNC = mylist,
  STYPE = text,
  INITCOND = ''
);

regression=# select source, tgtlist(target) from src2tgt group by source;
   source    |              tgtlist
-------------+-----------------------------------
 [EMAIL PROTECTED] | [EMAIL PROTECTED],[EMAIL PROTECTED]
 [EMAIL PROTECTED] | [EMAIL PROTECTED],[EMAIL PROTECTED]
(2 rows)

HTH,

Joe


---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly

Reply via email to