Вы можете попробовать создать регулярное выражение, включающее в себя столбец code_str. Следующие попытки такие. Он создает выражение, ищущее начало строки или пробел после кода страны, за которым следует пробел или конец строки, и извлекает сопоставление строк. Тем не менее, как ложные срабатывания, так и ложные отрицания, как ваш текст поиска свободной формы. Любое вхождение, совпадающее с этим шаблоном, будет возвращено, даже если НЕ является действительным кодом, и может также пропустить действительные коды. Например, он не найдет строку:
982,'US', 'Starbucks 618 Miracle Mile, Chicago, IL, USA'
Возможно, вам потребуется более точное определение того, что вы ищете.
with tranzactions (country_code_number , code_str , location_terminal_name) as
(select 398,'KZ', 'CoffeBoom KZ Mendekulova district *Near Dostyk plaza' from dual union all
select 840,'US', 'Starbucks 1500 Broadway *Near Times Square US' from dual union all
select 982,'US', 'Starbucks 618 Miracle Mile, Chicago, IL, USA' from dual
)
select * from tranzactions
where regexp_like(location_terminal_name, '(^| )' || code_str || '( |$)' );