Re: Duda con un select y alias

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
>>>
>>>
>>>
>>>

In response to

Responses

Browse pgsql-es-ayuda by date

  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