2013/4/8 Marcelo da Silva <[email protected]>: > 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;
Marcelo... você não mencionou a versão do Postgres, mas se for 9.0 ou superior, basta usar a função string_agg [1]. Mais ou menos assim: Select cod_id, string_agg(email, ', ') from mv_clientes_emails group by cod_id; 1 - http://www.postgresql.org/docs/9.0/static/functions-aggregate.html -- Marcone Peres - DBA http://www.linkedin.com/in/marconeperes @marconeperes (61) 8146-0028 _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
