一尘不染

Oracle SQL-从字符串中删除部分重复

sql

我有一个带有列的表,其中的字符串看起来像这样:

static-text-here/1abcdefg1abcdefgpxq

从此字符串1abcdefg重复两次,因此我想删除该部分字符串,然后返回:

static-text-here/1abcdefgpxq

我不能保证重复字符串的长度。在纯SQL中,如何执行此操作?


阅读 178

收藏
2021-05-23

共1个答案

一尘不染

如果您可以保证重复字符串的最小长度,则可以执行以下操作:

select REGEXP_REPLACE
   (input, 
   '(.{10,})(.*?)\1+', 
   '\1') "Less one repetition" 
   from tablename tn where ...;

我相信可以扩展到可以满足您的情况。

2021-05-23