从 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
我正在尝试从包含字母和特殊字符的字符串中提取数字,例如 绿色 - 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