Re: need clean way to copy col vals from one rec to another

From: "Gauthier, Dave" <dave(dot)gauthier(at)intel(dot)com>
To: Alban Hertroys <dalroi(at)solfertje(dot)student(dot)utwente(dot)nl>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: need clean way to copy col vals from one rec to another
Date: 2010-02-10 17:05:29
Message-ID: 482E80323A35A54498B8B70FF2B879800444228EDD@azsmsx504.amr.corp.intel.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Outstanding !
Thanks Alban.

-----Original Message-----
From: Alban Hertroys [mailto:dalroi(at)solfertje(dot)student(dot)utwente(dot)nl]
Sent: Wednesday, February 10, 2010 11:46 AM
To: Gauthier, Dave
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: [GENERAL] need clean way to copy col vals from one rec to another

On 10 Feb 2010, at 17:28, Gauthier, Dave wrote:

> create table foo (name text, company text, job text);
> insert into foo (name,company,job) values ('joe','ge','engineer');
> insert into foo (name) values ('sue');
>
> What I want to do is map joe's company and job over to the sue record, ending up with....
> 'sue' 'ge' 'engineer'
>
> Is there a quick/clever.efficient way to do this?

UPDATE foo SET company = joe.company, job = joe.job
FROM foo AS joe
WHERE foo.name = 'sue'
AND joe.name = 'joe';

You could also do this on insert by using:

INSERT INTO foo (name, company, job)
SELECT 'sue', joe.company, joe.job
FROM foo AS joe
WHERE joe.name = 'joe';

Alban Hertroys

--
If you can't see the forest for the trees,
cut the trees and you'll see there is no forest.

!DSPAM:1015,4b72e2dc10441976818836!

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Baron Schwartz 2010-02-10 17:55:03 Logging statement/duration on the same line
Previous Message Alban Hertroys 2010-02-10 16:46:19 Re: need clean way to copy col vals from one rec to another