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
>
>
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 ? |