para 8.4 existe una función que usa una estructura de datos.. si alguien la necesita la envío.. la descargue de un blog hace tiempo..
saludos Cristian O. www.digitalbee.cl 2012/8/7 Guillermo Villanueva <[email protected]> > Perdón, me respondo yo solo: > > select > pos_email, > pos_apellido, > pos_nombre, > *string_agg*(edu_titulo, '<BR>') > > from postulantes inner join titulos using(pos_id) > group by > pos_email, > pos_apellido, > pos_nombre > Debía utilizar en 9.0 la función *string_agg* > > Guillermo Villanueva > > > > > El 7 de agosto de 2012 08:49, Guillermo Villanueva <[email protected] > > escribió: > > Buenos días, estaba buscando si existe una función agregada no estándar >> tal que así como se puede hacer un sum() de valores numéricos, pueda >> concatenar valores de tipo varchar. >> No encontré algo así, pero encontré una alternativa que la pongo a >> consideración de uds. >> >> Supongamos el siguiente caso: tengo una tabla de postulantes (personas) y >> otra de los títulos o estudios. Titulos tiene una FK apuntando a >> postulantes, entonces quiero listar todos los posulantes y por cada uno de >> estos la concatenación de las filas de títulos que tenga. >> Yo pretendía algo así: >> >> select >> pos_email, >> pos_apellido, >> pos_nombre, >> sumvarchar(edu_titulo||'<BR>') >> from postulantes inner join titulos using(pos_id) >> group by >> pos_email, >> pos_apellido, >> pos_nombre >> >> Pero como sumvarchar no existe >> Hice lo siguiente: >> >> select >> pos_email, >> pos_apellido, >> pos_nombre, >> array_to_string(array(select edu_titulo from educacion where >> pos_email=a.pos_email),'<BR>') >> from postulantes a >> >> Por favor, cuentenmé si hay alguna forma mas eficiente de hacerlo. >> Desde ya muchas gracias >> >> Guillermo Villanueva >> >> >> >
