Re: [pgsql-es-ayuda] Re: Uso de resultado de función en la misma proyección o en el filtro

From: Alejandro Carrillo <fasterzip(at)yahoo(dot)es>
To: "Guillermo E(dot) Villanueva" <guillermovil(at)gmail(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Re: Uso de resultado de función en la misma proyección o en el filtro
Date: 2013-02-06 15:00:44
Message-ID: 1360162844.24837.YahooMailNeo@web172201.mail.ir2.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2

>________________________________
> De: Guillermo E. Villanueva <guillermovil(at)gmail(dot)com>
>Para: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
>Enviado: Miércoles 6 de febrero de 2013 9:57
>Asunto: [pgsql-es-ayuda] Re: Uso de resultado de función en la misma proyección o en el filtro
>
>
>Respondiendome a mi mismo he visto en algunos foros que lo resuelven con una subconsulta a nivel del from algo así como:
>
>
>select 
>    col_1,
>    col_2,
>    col_result,
>    case when col_result > 0 then 'L' else 'D' END col_4
>from
>(
>  select 
>      col_1,
>      col_2,
>      fn_funciondeusuario(parametros) col_result,
>  from
>      tablas
>) as tablas2    ;
>
>
>Mi intención era evitar que postgres haga el cálculo dos veces por cada tupla del resultado, entonces reformulo mi pregunta si lo hago así:
>select 
>    col_1,
>    col_2,
>    fn_funciondeusuario(parametros) col_result,
>    case when fn_funciondeusuario(parametros) > 0 then 'L' else 'D' END col_4
>from
>    tablas;

>Postgres calcula 1 o 2 veces por cada tupla?
>
>
>Guillermo Villanueva
>
>
>
>El 6 de febrero de 2013 11:39, Guillermo E. Villanueva <guillermovil(at)gmail(dot)com> escribió:
>
>Buenos días, gente hay posibilidad de utilizar el resultado de una función o de un cálculo en la misma consulta para la misma tupla?
>>por ejemplo
>>select 
>>    col_1,
>>    col_2,
>>    fn_funciondeusuario(parametros) col_result,
>>    case when col_result > 0 then 'L' else 'D' END col_4
>>from
>>    tablas;
>>
>>
>>Si lo ejecuto así nomas me dice que no existe la columna col_result, lo que yo quiero es que no tenga que calcular 2 veces lo mismo. Es posible de alguna manera? 
>>
>>
>>Desde ya muchas gracias!
>>
>>
>>Guillermo
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>Guillermo Villanueva
>>
>
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guillermo E. Villanueva 2013-02-06 15:13:15 Re: [pgsql-es-ayuda] Re: Uso de resultado de función en la misma proyección o en el filtro
Previous Message Guillermo E. Villanueva 2013-02-06 14:57:43 Re: Uso de resultado de función en la misma proyección o en el filtro