Вы можете использовать CONNECT BY LEVEL
Оператор:
WITH t2 AS
(
SELECT DISTINCT ID, regexp_substr(str,'[0-9]+',1,level) AS NMR
FROM t
CONNECT BY level <= regexp_count(str,'[0-9]+')
)
SELECT SUM(NVL(NMR,0)) AS "Numeric Result"
FROM t2
вместе с функциями regexp_substr()
и regexp_count()
при условии, что у вас есть столбец первичного ключа (ID
)
Если вы необходимо агрегирование по строкам, затем рассмотрите возможность использования GROUP BY ID
для основного запроса:
SELECT ID, SUM(NVL(NMR,0)) AS "Numeric Result"
FROM t2
GROUP BY ID
Демо