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
60 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
7 Comments
 
LVL 13

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
Industry Leaders: 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 500 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 37

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

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Deleting Rows from an Oracle Database - Performance 19 73
Problem with duplicate records in Oracle query 16 51
sum of columns in a row in oracle 3 42
date show only hh:mm 2 38
This article started out as an Experts-Exchange question, which then grew into a quick tip to go along with an IOUG presentation for the Collaborate confernce and then later grew again into a full blown article with expanded functionality and legacy…
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 how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function

756 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