Мне кажется, проблема скорее в вашем коде, чем в регулярном выражении. Посмотрите: like '%CNA %'
возвращает все записи, которые содержат подстроку CNA
, за которой следует буквальный пробел в любом месте записи. Регулярное выражение '.*CNA\s'
соответствует любым 0+ символам, кроме новой строки, за которыми следуют CNA
и ** любые пробельные символы *.
Точность. эта ссылка , \s
соответствует "символ пробела. Пробел определяется как [\t\n\f\r\p{Z}]
.
Таким образом, вы должны просто использовать
WHERE REGEXP_LIKE(MRCH_NME, 'CNA ', 'i')
или, что лучше, с проверкой границы слова:
WHERE REGEXP_LIKE(MRCH_NME, '\bCNA\b', 'i')
, где \b
отмечает переход от слова к несловесному и не словесному к словесному символу, обеспечивая тем самым поиск по всему слову и оправдывая использование регулярного выражения.
Если вам не нужно сопоставлять имя продавца как целое слово, используйте обычный LIKE
с '%CNA %'
, это должно быть более эффективным.