使用Oracle SQL regexp_replace不区分大小写替换所有出现的内容

8

我希望你能帮忙替换所有出现的字符串,不区分大小写。

这个查询可以将所有的“tons”替换为“yard”,但它区分大小写。

SELECT regexp_replace(col_name, 'tons', 'yard') FROM DUAL;

我该如何编写一个查询语句,无论大小写都可以替换所有出现的内容。我尝试了这个方法但没有成功:

SELECT regexp_replace(col_name, 'tons', 'yard', 'i') FROM DUAL;

谢谢

1个回答

16

使用'i'选项是正确的,但在它之前你缺少两个参数。

REGEXP_REPLACE(<source_string>, <pattern>,<replace_string>, <position>, <occurrence>, <match_parameter>)

对于位置,使用1从开头开始搜索。对于出现次数,使用0替换每个出现。

SELECT regexp_replace(col_name, 'tons', 'yard', 1, 0, 'i') FROM DUAL;

示例

官方文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接