aggregate...

Поиск
Список
Период
Сортировка
От Mathieu Arnold
Тема aggregate...
Дата
Msg-id 1729482965.1021399989@andromede.reaumur.absolight.net
обсуждение исходный текст
Ответы Re: aggregate...  (Tom Lane <tgl@sss.pgh.pa.us>)
Список 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 по дате отправления:

Предыдущее
От: "Joel Burton"
Дата:
Сообщение: Re: sort text field numerically
Следующее
От: Scott Royston
Дата:
Сообщение: can't cast varchar as integer?