Re: Subquery en variable

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: oscar arocha <arocha(dot)oscar(at)gmail(dot)com>
Cc: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Subquery en variable
Date: 2017-07-05 22:31:11
Message-ID: 20170705223111.ailryler3gfj5wxg@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

oscar arocha escribió:
> Saludos, les adjunto un query a ver si me pueden ayudar con lo siguiente,
> dentro del SP, tengo un subquery que repito para filtrar un query mas
> grande, sin embargo uso ese query en otras partes del SP y lo que quiero es
> no tener que ejecutarlo mas de una vez.

Usa array_agg() para poner los IDs en un array, y luego el operador "= any"
para comparar una columna escalar con cualquiera de los valores del
arreglo. (Creo que podrías usar IN directamente para comparar con un
arreglo, pero no me acuerdo de la sintaxis exacta. El asunto es que no
necesitas el unnest que alguien sugirió en otra respuesta).

declare
catalog_ids int[];
begin
...
select into catalog_ids array_agg(distinct catalog_id) from sales where ...

insert into sales_cost ....
where .. and catalog_id = any (catalog_ids);

--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Oswaldo 2017-07-07 11:52:15 Re: Subquery en variable
Previous Message Anthony Sotolongo 2017-07-05 17:58:05 Re: Subquery en variable