From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | "Guillermo E(dot) Villanueva" <guillermovil(at)gmail(dot)com> |
Cc: | Jairo Graterón <jgrateron(at)gmail(dot)com>, 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-09-07 16:49:28 |
Message-ID: | 20200907164928.GA6484@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Guillermo E. Villanueva escribió:
> 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.s
Perdona que te contradiga, pero la solución de Jairo lo soluciona
perfectamente. Es fácil verlo haciendo que la función deje una traza en
cada ejecución:
=# create function f_articulo_get_precio(int) returns text language
plpgsql as $$ begin raise notice 'buu!'; return '12342020/09/07'; end
$$;
CREATE FUNCTION
por ejemplo, invocándola una vez vemos la traza:
=# select f_articulo_get_precio(1234);
NOTICE: buu!
f_articulo_get_precio
───────────────────────
12342020/09/07
(1 fila)
y ahora ejecutamos como Jairo sugiere, la traza aparece una única vez:
=# with T1 as
(select f_articulo_get_precio(1234) as ls_numero)
select substr(ls_numero, 8, 13), substr(ls_numero, 21, 10)
from t1 ;
NOTICE: buu!
substr │ substr
─────────┼────────
0/09/07 │
(1 fila)
> (* tampoco lo puede resolver con lo que indica Anthony*)
Dicho lo anterior, la solución de Anthony es la realmente inteligente.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Diego | 2020-09-07 21:44:11 | Re: Extensión pldebugger para Postgresql 12 en Centos 7, no encontrada |
Previous Message | Lucas Luengas | 2020-09-07 13:16:10 | Extensión pldebugger para Postgresql 12 en Centos 7, no encontrada |