Re: can these queries be combined into one? - Mailing list pgsql-general

From Rainer Pruy
Subject Re: can these queries be combined into one?
Date
Msg-id 4F70883E.9020108@acrys.com
Whole thread Raw
In response to can these queries be combined into one?  (hamann.w@t-online.de)
List 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.w@t-online.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
>
>

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Change the default [tgenabled] for new "internal" triggers ?
Next
From: Gregg Jaskiewicz
Date:
Subject: language name case sensitivity, also known as plpgsql <> 'PLpgSQL'