我在表格列中有一个字符串,用' +'分隔。我需要删除重复项。
插图:
我的数据:
a+a+a+b+b+c+c
期望:
a+b+c
我尝试使用REGEXP_REPLACE
但无法转义保留的+
字符。
我使用comma
分隔值成功,但需要+
或?
分隔值的帮助。
具有comma
分隔值的工作代码:
SELECT REGEXP_REPLACE ('a,a,a,b,b,c,c', '([^,]+)(,\1)+', '\1') FROM DUAL;
答案 0 :(得分:1)
如果您需要使用保留字符作为其正常值,则需要使用反斜杠将其转义。这适用于所有保留字符。
\
您可以通过将正则表达式中的每个逗号替换为...
来修改现有代码\+
例如:
SELECT REGEXP_REPLACE('a+a+a+b+b+c+c', '([^\+]+)(\+\1)+', '\1') FROM DUAL;
答案 1 :(得分:0)
逃避+:
SELECT REGEXP_REPLACE ('a+a+a+b+b+c+c', '([^\+]+)(\+\1)+', '\1') FROM DUAL;