Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

Add values from Col 5 to values in col 6 and put them into col 7 in the SAME oracle Table

Posted on 2016-08-22
7
Medium Priority
?
68 Views
Last Modified: 2016-08-23
Hi experts,

I have a table Alpha, it has col_1, Col_2, Col_3, Col_4, Col_5, Col_6, Col_7. The datatype in each column is number (10).

I want to add values in Col_5 with values in Col_6 and store the result in col_7 for each row in the table, taking into account NULL values in either column (Col_5, Col_6).  We are adding numbers only. No data conversion. It could be a an update statement or Merge statement.

I tried this, but  did not work.

Update Alpha set Col_7 = ((Select Case when col_5 = -1 or col_6 = -1 then -1
                                                               else  col_5 + col_6
                                                       End)
                                             From Alpha);

Please help.

Thanks
0
Comment
Question by:KamalAgnihotri
7 Comments
 
LVL 14

Expert Comment

by:Alexander Eßer [Alex140181]
ID: 41765501
update Alpha set .... From Alpha

I suppose you're getting an error?!
0
 

Author Comment

by:KamalAgnihotri
ID: 41765538
Alex, Yes I am getting an error. What is the solution.
0
 
LVL 35

Expert Comment

by:johnsone
ID: 41765590
I would guess this is what you are looking for:
UPDATE alpha 
SET    col_7 = CASE 
                 WHEN col_5 = -1 
                       OR col_6 = -1 THEN -1 
                 ELSE col_5 + col_6 
               END; 

Open in new window

Not sure why you have a sub-query.
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 32

Accepted Solution

by:
awking00 earned 2000 total points
ID: 41765760
Since you indicated col_5 or col_6 might contain nulls, you may want to modify johnsone's update to this
UPDATE alpha
SET    col_7 = CASE
                 WHEN col_5 = -1
                       OR col_6 = -1 THEN -1
                 ELSE nvl(col_5,0 + nvl(col_6,0)
               END;
 You might also use decode in this instance
update alpha set col_7 = decode(col_5,-1,-1,col_6,-1,-1, nvl(col_5,0) + nvl(col_6,0))
0
 
LVL 35

Expert Comment

by:johnsone
ID: 41765814
I was assuming that the original was correct, just needed the syntax fixed.
0
 
LVL 38

Expert Comment

by:Geert Gruwez
ID: 41765853
what ? really ?

update alpha
set col7 = nvl(col5, 0) + nvl(col6, 0)

i guess I spoiled your homework now
1
 

Author Closing Comment

by:KamalAgnihotri
ID: 41766674
Thanks. That worked.
0

Featured Post

Get quick recovery of individual SharePoint items

Free tool – Veeam Explorer for Microsoft SharePoint, enables fast, easy restores of SharePoint sites, documents, libraries and lists — all with no agents to manage and no additional licenses to buy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

How to Create User-Defined Aggregates in Oracle Before we begin creating these things, what are user-defined aggregates?  They are a feature introduced in Oracle 9i that allows a developer to create his or her own functions like "SUM", "AVG", and…
This post first appeared at Oracleinaction  (http://oracleinaction.com/undo-and-redo-in-oracle/)by Anju Garg (Myself). I  will demonstrate that undo for DML’s is stored both in undo tablespace and online redo logs. Then, we will analyze the reaso…
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.
This video shows how to recover a database from a user managed backup
Suggested Courses

577 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question