在sql中的单个单元格内添加值

时间:2013-10-24 03:08:14

标签: sql oracle cell add

我有一个像这样的专栏

       column 1       column 2
row1: 125+100+170    ,   0
row2: 125+100+130+30 ,   0
row3: 230+170        ,   0
row4: 230+130+30     ,   0

有没有办法在oracle sql 11g中找到每个单元格中的总和?即125 + 100 + 170 = 395

         desired output
       column 1    column 2
row1:     395    ,   0
row2:     385    ,   0
row3:     400    ,   0
row4:     390    ,   0

2 个答案:

答案 0 :(得分:0)

未经测试,但......

Select sum( regexp_substr (column1, '[^+]', 1, rownum) ) ...

答案 1 :(得分:0)

只要您的表格中还有唯一标识符,则以下内容将有效...

select sum(single_element), column2
 from (SELECT distinct id, REGEXP_SUBSTR(column1, '[^\+]+', 1, level) AS single_element,
              column2
       FROM   test
       CONNECT BY level <= REGEXP_COUNT(column1, '\+') + 1
       order by id desc)
group by id, column2
order by id desc

请参阅FIDDLE进行测试

如果您的表中没有唯一标识符,我不知道如何做到这一点。