删除表格列中的后续重复字符串

时间:2016-07-04 13:48:39

标签: sql regex postgresql

我有一个名为event

的表格
id     event_sequnce
1      a->c->b->b->b->c->b
2      d->d->a->d->c->a->a->c

我想从列event_sequnce

中删除后续的重复字母

所以输出表将是

id   event_sequnce
1    a->c->b->c->b
2    d->a->d->c->a->c

如何编写查询来实现这一目标?

1 个答案:

答案 0 :(得分:1)

你必须使用正则表达式:

select regexp_replace('d->d->a->d->c->a->a->c', '(\w\-\>)\1+', '\1', 'g');

enter image description here

更新版本

select regexp_replace(regexp_replace(textcat('d->d->a->d->c->a->a->c->c', '->'), '(\w\-\>)\1+', '\1', 'g'), '\-\>$', '');