1

我们正在使用 Amazon-Redshift(符合 PostgreSQL 的语法),我们在表中有以下字符串

"TOTO;"
"TOTO;;"
"TOTO;;;"
"TOTO;;;;"

我想'rtrim'双分号。所以我想拥有

"TOTO;"
"TOTO"
"TOTO;"
"TOTO"

怎么做?

4

2 回答 2

2

regexp_replace函数与(;;)*$正则表达式一起使用(任意数量的;;后跟行尾):

SELECT regexp_replace(';;test;;;', '(;;)*$'), regexp_replace(';;test;;;;', '(;;)*$');
┌────────────────┬────────────────┐
│ regexp_replace │ regexp_replace │
├────────────────┼────────────────┤
│ ;;test;        │ ;;test         │
└────────────────┴────────────────┘
(1 row)
于 2017-09-22T15:19:43.083 回答
0
select replace('TODO;;;',';;','')

如果我做了一个错误的假设,请发表评论,我会重新调整我的答案。

于 2017-09-22T15:21:48.367 回答