В зависимости от базы данных, которую вы используете, например, SQL Server, _
может иметь значение , означающее .
Возможно, вы захотите избежать подчеркивания в вашем выражении LIKE.
Пример SQL Server
create table test (
string_col varchar(1000)
);
insert into test values ('FT PROMOTED TREND - TTT_TLMW+_WER_TEST_TEST_TEsT_TEST CHECK_ANOTHER_NA_TEST_TEST: TEST_TEST_TEST_TEST_FIVE');
insert into test values ('FT PROMOTED TREND2 - _TTT_TLMW+_WER_TEST_TEST_TEsT_TEST CHECK_ANOTHER_NA_TEST_TEST: TEST_TEST_TEST_TEST_FIVE');
Результат
select * from test
where string_col LIKE '%_TTT_%';
даст вам 2 результата.
select * from test
where string_col LIKE '%[_]TTT[_]%';
даст вам 1 результат.
Возможно, ваш запрос должен выглядеть следующим образом
select
CASE
WHEN string_col LIKE '%[_]TTT[_]%' THEN RIGHT(string_col, LEN(string_col) - CHARINDEX('_', string_col))
ELSE string_col
END new_string_col
from test;
если вы используете SQL Server. Если вы используете другую базу данных, у вас также может быть способ избежать этого _
.