Это тот же вопрос, что и здесь , но ответы там были очень специфичны для PHP (и я использую Redshift SQL, а не PHP).
Я пытаюсьудалить определенные суффиксы из строк.Я попытался использовать RTRIM , но это удалит любой из перечисленных символов, а не только полную строку.Я хочу, чтобы строка изменялась только в том случае, если существует точный суффикс, и я хочу, чтобы он был заменен только один раз.
Например, RTRIM("name",' Inc')
преобразует "XYZ Company Corporation" в "XYZ Company Corporatio". (Удалено окончательное 'n', поскольку оно является частью 'Inc')
Затем я попытался использовать оператор CASE, чтобы ограничить неправильные замены, но это все равно не решило проблему,поскольку он будет продолжать делать замены после исходного суффикса.
Например, когда я запускаю это:
CASE WHEN "name" LIKE '% Inc' THEN RTRIM("name",' Inc')
, я получаю следующие результаты:
"XYZ Association Inc" становится "XYZ Associatio". (он обрезал Inc, но также и окончательное 'n')
Я знаю, что могу использовать функцию REPLACE , но я понимаю, что это заменит значенияоткуда-нибудь в строке, и я хочу заменить только тогда, когда она существует в конце строки.
Как я могу сделать это с Redshift?(У меня нет возможности использовать здесь какие-либо другие языки или инструменты).