对Oracle中字符串中的数字求和

Bal*_*a S 3 sql oracle

以下是面试问题,有人可以帮我解决一下吗?

select 'a1b2c3d4e5f6g7' from dual;
Run Code Online (Sandbox Code Playgroud)

输出是给定整数的总和(1 + 2 + 3 + 4 + 5 + 6 + 7)= 28.有帮助吗?

Mih*_*hai 9

使用正则表达式仅保留数字,然后连接以添加每个数字

With T
as (select regexp_replace('a1b2c3d4e5f6g7', '[A-Za-z]') as col from dual)
select sum(val)
From
(
select substr(col,level,1) val from t connect by level <= length(col)
)
Run Code Online (Sandbox Code Playgroud)

小提琴