2


>________________________________
> De: Guillermo E. Villanueva <guillermo...@gmail.com>
>Para: pgsql-es-ayuda <pgsql-es-ayuda@postgresql.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 
><guillermo...@gmail.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
>>
>
>
>

Responder a