según te entiendo calakra quieres devolver el valor de una consulta, pero llamada desde una función y no concatenandola.
Es decir, que la salida de la función sean los registros y no un valor unicamente....
si es así, espero que utilices una versión superior a la 8.3 ya que esto lo solucionan con una nueva función llamada
return query
En un ejemplo sencillo:
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION retornar_query(INTEGER)
RETURNS SETOF INTEGER AS
$body$
BEGIN
RETURN query SELECT campo_entero FROM usuarios;
END;
$body$
LANGUAGE 'plpgsql' VOLATILE;
De esta forma retorna multiples valores en filas.
Si necesitas mas columnas en el retorno, hay que hacer un pequeño ajuste creando un tipo de dato con
create type con las columnas a retornar.
Si tienes una versión anterior a la 8.3, esto se puede lograr con la sentencia
return next pero es un trabajo mas engorroso, ya que es necesario meter la sentencia dentro de un for para retornar registro por registro.
Lee el enlace y cuentanos si es lo que requieres o si necesitas de otro tip adicional para conseguir lo que necesitas.
saludos