SQL - удалить двойные точки с запятой в конце поля
Мы используем Amazon-Redshift (синтаксис, совместимый с PostgreSQL), у нас есть следующая строка в таблице
"TOTO;"
"TOTO;;"
"TOTO;;;"
"TOTO;;;;"
Я хотел бы 'rtrim' двойные точки с запятой. Так что я хотел бы иметь
"TOTO;"
"TOTO"
"TOTO;"
"TOTO"
Как это сделать?
2 ответа
Решение
Использовать regexp_replace
функция с (;;)*$
регулярное выражение (любое количество ;;
с последующим концом строки):
SELECT regexp_replace(';;test;;;', '(;;)*$'), regexp_replace(';;test;;;;', '(;;)*$');
┌────────────────┬────────────────┐
│ regexp_replace │ regexp_replace │
├────────────────┼────────────────┤
│ ;;test; │ ;;test │
└────────────────┴────────────────┘
(1 row)
select replace('TODO;;;',';;','')
Если я сделал неверное предположение, пожалуйста, прокомментируйте, и я перефокусирую свой ответ.