как найти символ в значении столбца - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть две таблицы

  1. таблица со всеми кодами стран, такими как KZ, US, RU
  2. таблица транзакций с расположением терминала, например (Starbucks 1500 Broadway * Near Times Square US) ( CoffeBoom KZ Мендекуловский район * Рядом с площадью Достык)

и я хочу выбрать код страны, код str, название терминала, например,

398 | KZ | CoffeBoom KZ Mendekulova district *Near Dostyk plaza
840 | US | tarbucks 1500 Broadway *Near Times Square US

и без регистра в названии терминала. имеет код char в строке, такой как 'Gucci Moscow Redkzsuzin district RU', где char 'KZ','UZ' код страны, которую я хочу выбрать только 'RU'.

1 Ответ

0 голосов
/ 11 апреля 2020

Вы можете попробовать создать регулярное выражение, включающее в себя столбец 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 || '( |$)' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...