从 Oracle SQL 中的字符串中提取整数并查找特定字符并将其替换为另一个

Extract integer from a string in Oracle SQL and find and replace a specific character with another

我正在尝试从包含字母和特殊字符的字符串中提取数字,例如 绿色 - 100% 绿色 - 90% 红色 - 0% 红色 - 25% 黄色 - 50% 黄色 - 75% 我试过 REGEXP_REPLACE (COLUMN_NAME, '[[:alpha:]]') 但这会留下 - 和 %。我应该再添加两个 REGEXP 来替换 - 和 % 吗?或者有没有一种有效的方法可以在一个函数中完成?

同样在另一个问题中,我需要识别字符串中的双引号并替换为两次双引号,最后将整个字符串用双引号引起来 eg: Example" 应转换为 "Example""" Sam"ple 应转换为 "Sam""ple"

感谢您的解决方案

要仅提取数字部分,请使用 '[^[:digit:]]' 而不是 '[[:alpha:]]'regexp_replace()

regexp_replace(column_name, '[^[:digit:]]', '')

您可以使用以下查询来解决您的第二个问题。

select '"'||replace('Example"','"','""')||'"' from yourtable