Hola Daniel, puedes retornar dos valores como dice Anthony o usar subconsultas
with T1 as (select <https://www.postgresql.org/docs/11/static/sql-select.html> 'XXXZMMM1234567890123yyyy/mm/dd' as ls_numero) select <https://www.postgresql.org/docs/11/static/sql-select.html> substr <https://www.postgresql.org/docs/11/static/functions-string.html>(ls_numero, 8, 13), substr <https://www.postgresql.org/docs/11/static/functions-string.html>(ls_numero, 21, 10) from t1; with T1 as (select <https://www.postgresql.org/docs/11/static/sql-select.html> f_articulo_get_precio(xxxxx) as ls_numero) select <https://www.postgresql.org/docs/11/static/sql-select.html> substr <https://www.postgresql.org/docs/11/static/functions-string.html>(ls_numero, 8, 13), substr <https://www.postgresql.org/docs/11/static/functions-string.html>(ls_numero, 21, 10) from t1; El jue., 27 ago. 2020 a las 20:57, Anthony Sotolongo (<asotolo...@gmail.com>) escribió: > Hola Daniel, si tienes acceso a modificar esa función puedes definir dos > parámetros de salida que retornen esos valores, y así la llamarías una sola > vez. > > > Saludos > > El jue., 27 de agosto de 2020 7:55 p. m., Fontana Daniel C (Desartec > S.R.L.) <desartec...@gmail.com> escribió: > >> perfecto, ahora imaginemos que '1234567890' es una funcion >> f_articulo_get_precio( id_code ), >> que devuelve en un string como el siguiente >> 'XXXZMMM1234567890123yyyy/mm/dd' donde >> 1234567890123 es el precio >> yyyyy/mm/dd la fecha en que se cambio por ultima vez. >> Como haria en este caso para obtener estos valores por separado? >> sin llamar a la funcion 2 veces evitando sobrecargar la base? >> >> De: Juan José Santamaría Flecha [mailto:juanjo.santama...@gmail.com] >> Enviado el: jueves, 27 de agosto de 2020 17:22 >> Para: Diego >> CC: Fontana Daniel C (Desartec S.R.L.); >> pgsql-es-ayuda@lists.postgresql.org >> Asunto: Re: Duda con un select >> >> >> El jue., 27 ago. 2020 17:55, Diego <mrstephenam...@gmail.com> escribió: >> El que falla es el ls_numero del substr asi te va a funcionar: select >> '1234567890' as ls_numero, substr('1234567890', 3, 3); >> Hay muchas formas de hacer algo equivalente, si necesitas hacer >> referencia a la columna "ls_numero" puedes utilizar una consulta anidada: >> >> select substr(ls_numero, 3, 3) from >> (select '1234567890' as ls_numero) as ls; >> >> Un saludo, >> >> Juan José Santamaría Flecha >> >> >> >>