Удаление концевых подстрок в SQL - PullRequest
0 голосов
/ 21 февраля 2020

Мне нужно очистить (через SQL) некоторые названия компаний с обычными конечными суффиксами, такими как «CO» и «IN C», не повреждая оставшуюся строку, например, «PEETS COFFEE CO» будет корректно очищено до «PEETS». COFFEE '.

Я попробовал TRIM, но это, похоже, работает только на отдельных символах и REPLACE, но это было слишком агрессивно и вернуло' PEETS FFEE 'из моего примера выше. Какие-либо предложения? Спасибо.

Редактирование / уточнение: меня больше всего интересует вхождение концевых «слов», которые начинаются с пробелов (например, «CORP» с пробелом, поэтому CORP не удаляется из LABCORP ). Но было бы также интересно удалить ведущие фразы, такие как слово «THE» из «ДОМАШНЕГО ДЕПО», но при этом сохранить эти буквы в «THEOLOPOLIS».

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

Вы можете использовать regexp_replace():

select regexp_replace(name, '( CO| INC)$', '', 1)

Здесь - это дБ <> скрипка.

0 голосов
/ 21 февраля 2020

Если вы находитесь на sql сервере, вы можете go с:

Declare @text varchar(100)= 'PEETS COFFEE CO'
if @text like '% CO'
    select @text = left(@text, len(@text)- len(' CO'))
if @text like '% INC'
    select @text = left(@text, len(@text)- len(' INC'))
select @text

Вывод:

PEETS COFFEE
...