Go Premium for a chance to win a PS4. Enter to Win

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
?
65 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
Veeam and MySQL: How to Perform Backup & Recovery

MySQL and the MariaDB variant are among the most used databases in Linux environments, and many critical applications support their data on them. Watch this recorded webinar to find out how Veeam Backup & Replication allows you to get consistent backups of MySQL databases.

 
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 your Conversational Ransomware Defense e‑book

This e-book gives you an insight into the ransomware threat and reviews the fundamentals of top-notch ransomware preparedness and recovery. To help you protect yourself and your organization. The initial infection may be inevitable, so the best protection is to be fully prepared.

Question has a verified solution.

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

Introduction A previously published article on Experts Exchange ("Joins in Oracle", http://www.experts-exchange.com/Database/Oracle/A_8249-Joins-in-Oracle.html) makes a statement about "Oracle proprietary" joins and mixes the join syntax with gen…
From implementing a password expiration date, to datatype conversions and file export options, these are some useful settings I've found in Jasper Server.
This video shows how to Export data from an Oracle database using the Original Export Utility.  The corresponding Import utility, which works the same way is referenced, but not demonstrated.
This video shows how to recover a database from a user managed backup

885 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