0

我有一个这样的专栏

       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
4

2 回答 2

0

未经测试,但...

Select sum( regexp_substr (column1, '[^+]', 1, rownum) ) ...
于 2013-10-24T03:21:28.240 回答
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进行测试

如果您的表中没有唯一标识符,我不知道这样做的方法。

于 2013-10-24T05:10:50.727 回答