Postgresql : function concat
besoin d'une fonction d'aggrégation par concaténation ? c'est possible
Voici comment créer la fonction d'aggrégation "concat()" sur postgres qui vous permettra sur une table de faire par exemple :
select nom from personne ;
toto
tata
raoul
select concat(nom||', ') from personne ;
toto, tata, raoul
Pour créer la fonction concat() passez sous Postgres avec un user qui a les privilèges suffisants et copier coller ceci :
CREATE OR REPLACE FUNCTION sconcat( TEXT, TEXT ) RETURNS TEXT AS '
select CASE WHEN $1 is null and $2 is null THEN '''' ELSE
( select CASE WHEN $1 is null THEN $2 ELSE
( select CASE WHEN $2 is null THEN $1 ELSE $1 || $2 END )
END )
END;
-- select $1 || $2 ;
' LANGUAGE 'sql';
drop AGGREGATE concat( text );
CREATE AGGREGATE concat( BASETYPE = text, SFUNC = sconcat, STYPE = text, initcond1 = '');
5 709 clics - Créé le 16/12/2010 par Tito - Modifié le 16/12/2010