我有一个带有列的表,其中的字符串看起来像这样:
static-text-here/1abcdefg1abcdefgpxq
从此字符串1abcdefg重复两次,因此我想删除该部分字符串,然后返回:
1abcdefg
static-text-here/1abcdefgpxq
我不能保证重复字符串的长度。在纯SQL中,如何执行此操作?
如果您可以保证重复字符串的最小长度,则可以执行以下操作:
select REGEXP_REPLACE (input, '(.{10,})(.*?)\1+', '\1') "Less one repetition" from tablename tn where ...;
我相信可以扩展到可以满足您的情况。