Received: from localhost (unknown [200.46.204.184]) by postgresql.org (Postfix) with ESMTP id 82AE62E2E7E for ; Wed, 12 Mar 2008 13:12:09 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.184]) (amavisd-maia, port 10024) with ESMTP id 54490-01-10 for ; Wed, 12 Mar 2008 13:12:01 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.5 Received: from perseverance.services.encs.concordia.ca (perseverance-96.encs.concordia.ca [132.205.96.94]) by postgresql.org (Postfix) with ESMTP id 4B9BA2E3195 for ; Wed, 12 Mar 2008 13:11:55 -0300 (ADT) Received: from cacao.encs.concordia.ca (emilu@cacao.encs.concordia.ca [132.205.47.225]) by perseverance.services.encs.concordia.ca (envelope-from emilu@encs.concordia.ca) (8.13.7/8.13.7) with ESMTP id m2CGBABo008628; Wed, 12 Mar 2008 12:11:46 -0400 Message-ID: <47D8009D.6000703@encs.concordia.ca> Date: Wed, 12 Mar 2008 12:11:09 -0400 From: Emi Lu Reply-To: emilu@encs.concordia.ca User-Agent: Thunderbird 2.0.0.12 (X11/20080213) MIME-Version: 1.0 To: Scott Marlowe CC: pgsql-sql@postgresql.org Subject: Re: case when... end in update clause? References: <47D7FB06.10707@encs.concordia.ca> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on perseverance.encs.concordia.ca at 2008/03/12 12:11:48 EDT X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200803/58 X-Sequence-Number: 30386 >> >> I use one small Example, table: test >> ============================= >> id >> == >> 5 >> 6 >> 8 >> >> try to update test.id >> >> >> update test >> >> case >> when id =5 then SET id = 6 >> end >> ; > > would this work: > > update test set id=5 where id=6; > No. I provide one small fake example. I want to know how to use case when in update/set clause as the following: update test set id = case when id = 5 then 6 else id end; Thanks.