2008/4/29 Arturo <arturomunive(at)gmail(dot)com>:
SELECT
campo 1,
campo 2,
funcion1(campo3),
funcion2(campo4),
(funcion1(campo3) * funcion 2(campo4))
FROM
...
donde las funciones pueden ser calculo pesado
Entonces yo creo que al usar asi las funciones cada una se ejecuta dos
veces
Mi pregunta es, existe algo como:
SELECT
campo 1 as "R1",
campo 2 as "R2",
funcion1(campo3) as "R3",
funcion2(campo4) as "R4",
("R3" * "R4") as "R5",
FROM
...
Obviamente asi no funciona (si no no lo preguntaría), pero hay alguna forma
de hacer eso????
Podrias hacerlo con subconsultas, o vistas...
Veamos:
Select
x.*,
(x.R3 * x.R4) as R5
from
(
SELECT
campo 1 as "R1",
campo 2 as "R2",
funcion1(campo3) as "R3",
funcion2(campo4) as "R4"
from ...
) as x
Igual mientras tanto, sigo buscando por internet, si encuentro algo les
aviso, si lo encuentran ustedes igual :)
La subconsulta la puedes enviar a una vista y luego el otro select
sale más facil... como mejor te parezca..
puedes darte una vuelta por:
http://www.postgresql.org/docs/7.4/static/queries-table-expressions.html
Ah! ojo que el link es para la version que yo uso, tu deberías buscar
para la version que tú utilizas...
Saludos!