IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Update query to update one field for two different condition


IBM Mainframe Forums -> DB2
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
sandip_mainframe
Warnings : 2

New User


Joined: 20 Sep 2006
Posts: 63
Location: pune

PostPosted: Thu Dec 17, 2009 4:23 pm
Reply with quote

Hi All,
My requirement is that I need to Update one field for two different condtions.

UPDATE TABLE
SET REQ_STA_CD = '6'
WHERE ENROLL_TYPE = 'R'

UPDATE TABLE
SET REQ_STA_CD = '7'
WHERE ENROLL_TYPE = 'V'

Is it possible to Update it in a single query ? If it is Please provide me the query.

Thanks,
Sandip Walsinge
Back to top
View user's profile Send private message
belchoff

New User


Joined: 21 Oct 2009
Posts: 4
Location: UK

PostPosted: Thu Dec 17, 2009 4:40 pm
Reply with quote

Have you heard about IN clause?

check it pls (google / manuals).
Back to top
View user's profile Send private message
Srihari Gonugunta

Active User


Joined: 14 Sep 2007
Posts: 295
Location: Singapore

PostPosted: Thu Dec 17, 2009 4:42 pm
Reply with quote

Sandip,
You can do it in the following way.

Code:
UPDATE TABLE
SET REQ_STA_CD = (CASE WHEN ENROLL_TYPE = 'R' THEN '6'
             WHEN ENROLL_TYPE = 'V' THEN '7' END) 
WHERE ENROLL_TYPE = 'R' OR ENROLL_TYPE = 'V';
Back to top
View user's profile Send private message
rexx77

New User


Joined: 14 Apr 2008
Posts: 78
Location: Mysore

PostPosted: Thu Dec 17, 2009 4:44 pm
Reply with quote

AFAIK, there is no single query to perform your requirement.
Back to top
View user's profile Send private message
ashimer

Active Member


Joined: 13 Feb 2004
Posts: 551
Location: Bangalore

PostPosted: Thu Dec 17, 2009 4:51 pm
Reply with quote

Code:

UPDATE TABLE A
SET REQ_STA_CD = ( SELECT CASE WHEN ENROLL_TYPE = 'R' THEN '6'
                                                      WHEN ENROLL_TYPE = 'V' THEN '7'
                                 END FROM TABLE WHERE COL =   A.COL       )


This is possible only if there is a unique column COL in this table or else the inner query will receive -811.
Back to top
View user's profile Send private message
ashimer

Active Member


Joined: 13 Feb 2004
Posts: 551
Location: Bangalore

PostPosted: Thu Dec 17, 2009 4:54 pm
Reply with quote

Good one Srihari.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> DB2

 


Similar Topics
Topic Forum Replies
No new posts Replace Multiple Field values to Othe... DFSORT/ICETOOL 12
No new posts RC query -Time column CA Products 3
No new posts Dynamically pass table name to a sele... DB2 2
No new posts Query on edit primary command CLIST & REXX 5
No new posts Query on edit primary command CLIST & REXX 1
Search our Forums:

Back to Top