From: | "Guillermo E(dot) Villanueva" <guillermovil(at)gmail(dot)com> |
---|---|
To: | Jairo Graterón <jgrateron(at)gmail(dot)com> |
Cc: | Anthony Sotolongo <asotolongo(at)gmail(dot)com>, "Fontana Daniel C (Desartec S(dot)R(dot)L(dot))" <desartecsrl(at)gmail(dot)com>, Juan José Santamaría Flecha <juanjo(dot)santamaria(at)gmail(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Duda con un select y alias |
Date: | 2020-08-31 16:07:04 |
Message-ID: | CANm+PCA8Cfna_2duY9Ww32RXtA1pdmE4emNE1eu-ouYiGeBb0Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Creo que entiendo la duda de Daniel, el quiere que por cada tupla del
resultado se llame una única vez a una función y a ese resultado poder
usarlo en mas de una proyección de columna y por ejemplo en el where y en
este caso con lo que indica Jairo no lo solucionaría.(* tampoco lo puede
resolver con lo que indica Anthony*)
El lun., 31 ago. 2020 a las 12:05, Jairo Graterón (<jgrateron(at)gmail(dot)com>)
escribió:
> 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 (<
> asotolongo(at)gmail(dot)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.) <desartecsrl(at)gmail(dot)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(dot)santamaria(at)gmail(dot)com]
>>> Enviado el: jueves, 27 de agosto de 2020 17:22
>>> Para: Diego
>>> CC: Fontana Daniel C (Desartec S.R.L.);
>>> pgsql-es-ayuda(at)lists(dot)postgresql(dot)org
>>> Asunto: Re: Duda con un select
>>>
>>>
>>> El jue., 27 ago. 2020 17:55, Diego <mrstephenamell(at)gmail(dot)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
>>>
>>>
>>>
>>>
From | Date | Subject | |
---|---|---|---|
Next Message | Lucas Luengas | 2020-09-07 13:16:10 | Extensión pldebugger para Postgresql 12 en Centos 7, no encontrada |
Previous Message | Jairo Graterón | 2020-08-31 15:05:05 | Re: Duda con un select y alias |