Re: can these queries be combined into one?

From: Rainer Pruy <Rainer(dot)Pruy(at)Acrys(dot)COM>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: can these queries be combined into one?
Date: 2012-03-26 15:16:14
Message-ID: 4F70883E.9020108@acrys.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Solution heavily depends on the relation of products and othertable.

If ordercode at most has a single match with ordercode from othertable,
then a simple left join and a coalesce() or CASE in the select list will do
( SELECT p.ordercode, p.descr, CASE WHEN t.codes is NULL THEN
p.ordercode ELSE t.ordercode | 512
from products p left join othertable t on p.ordercode = t.ordercode
WHERE........ ;)

IF othertable has several matching rows you might need to applay an
aggregator adding in all the bits for codes....

However, your update statement seems to imply something along the first
case......

Regards
Rainer

On 25.03.2012 09:16, hamann(dot)w(at)t-online(dot)de wrote:
>
> Hi,
>
> I am currently doing something like
>
> select ordercode, descr, codes into temp table x from products where ...
> Here codes is a bit-mapped field
> update x set codes = codes | 512 from othertable t where ordercode = t.ordercode and ....
> select * from x
>
> Is there a way to avoid that temp table?
>
> Regards
> Wolfgang Hamann
>
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Witt83 2012-03-26 15:20:40 Re: Quite a fast lockless vacuum full implemenation
Previous Message Tom Lane 2012-03-26 15:03:07 Re: Change the default [tgenabled] for new "internal" triggers ?