presto sql 过滤部分字符串 java

presto sql filter part of the string java

我在 col1 中有一个字符串 select col1 from table

"blah blah 123 blah iterate 866 loss blah blah"

如何过滤 iterate loss 之间的字符串并仅显示所有此类过滤数字的总和?

您可以使用 regexp_extract 提取该字符串中的数字,将值转换为数字类型并将它们相加:

WITH t(v) AS (
    VALUES 'blah blah 123 blah iterate 866 loss blah blah'
)
SELECT sum(CAST(regexp_extract(v, 'iterate (\d+) loss', 1) AS bigint)) 
FROM t