我有一个像这样的专栏
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
答案 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进行测试
如果您的表中没有唯一标识符,我不知道如何做到这一点。