Ao invés de usar um LOOP que pode sair bem caro, você pode utilizar ARRAYs que são bem eficientes. Veja o exemplo:
CREATE TABLE teste (abizi varchar); INSERT INTO teste VALUES ('AAA'),('BBB'),('CCC'),('DDD'); SELECT array_to_string(array_agg(abizi),',') FROM teste; Aqui usei duas funções com array, uma de aggregação: array_agg[1] e outra para transformar o array numa string, o array_to_string[2]. [1] http://www.postgresql.org/docs/current/static/functions-aggregate.html [2] http://www.postgresql.org/docs/current/static/functions-array.html OBS: Se for usar uma função mesmo, lembre-se de declarar como IMMUTABLE e não como VOLATILE. Assim o desempenho da sua função melhora muito. []s 2013/4/8 Marcelo da Silva <marc...@ig.com.br> > Pessoal estou tentando concatenar numa string o resultado de um select: > > email1, email2, email3, etc > > Sei pouca coisa em termos de funções em Postgres, criei a função abaixo > pra isso. > Mas está faltando o principal que é concatenar, vejam: > > CREATE OR REPLACE FUNCTION femailsclientes(integer) > RETURNS character varying AS > $BODY$ > declare > result character varying; > begin > > for result in select distinct email from mv_clientes_emails where > (cod_id = $1) > loop > result = result || ',' || result; > end loop; > return result; > > end; > $BODY$ > LANGUAGE plpgsql VOLATILE > COST 100; > ALTER FUNCTION femailsclientes(integer) > OWNER TO postgres; > > Podem me ajudar? > > Obrigado > ............................... > > Marcelo Silva > > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > -- Atenciosamente, Fábio Telles Rodriguez blog: http:// <http://www.midstorm.org/~telles/>s<http://tellesr.wordpress.com/> avepoint.blog.br e-mail / gtalk / MSN: fabio.tel...@gmail.com Skype: fabio_telles Timbira - A empresa brasileira de Postgres http://www.timbira.com.br
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral