aggregate...
От | Mathieu Arnold |
---|---|
Тема | aggregate... |
Дата | |
Msg-id | 1729482965.1021399989@andromede.reaumur.absolight.net обсуждение исходный текст |
Ответы |
Re: aggregate...
|
Список | pgsql-sql |
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
В списке pgsql-sql по дате отправления: