Hi
I have this :
CREATE FUNCTION "comma_cat" (text,text) RETURNS text AS '
SELECT CASE WHEN $2 IS NULL OR $2 = '''' THEN $1 WHEN $1 IS NULL OR $1 = '''' THEN $2 ELSE $1 ||
'','' || $2 END
' LANGUAGE 'sql';
CREATE AGGREGATE list ( BASETYPE = text, SFUNC = comma_cat, STYPE = text,
INITCOND = '' );
I can use it as :
select user, list(email) from user join email using (id_user);
user | list
-------+-----------------------------
mat | mat@mat.cc, mat@absolight.fr
isa | isa@mat.cc
but now, I'd like a better version of this function/aggregate couple which
would allow me to do something like :
select user, list(email, ',') from user join email using (id_user);
user | list
-------+-----------------------------
mat | mat@mat.cc,mat@absolight.fr
isa | isa@mat.cc
or :
select user, list(email, '|') from user join email using (id_user);
user | list
-------+-----------------------------
mat | mat@mat.cc|mat@absolight.fr
isa | isa@mat.cc
I know I'd have to modify the function to take a third argument (easy) but
I don't know how to use a 2 argument aggregate (I don't even know if it's
possible).
--
Mathieu Arnold