Подстановочные операторы для исключения всех чисел до и после символа - PullRequest
1 голос
/ 17 марта 2020

Я хотел бы найти все адреса, такие как VIA BOEZIO 6. Я использовал:

select address
from tab
where address like '%VIA%BOEZIO%6%'

, но, к сожалению, это результат:

enter image description here

Есть ли способ исключить все цифры c до и после "6". Не могли бы вы мне помочь?

Спасибо, Маттиа

Редактировать: я исправил:

, где адрес похож на '% VIA% BOEZIO% [^ 0-9] 6 [^ 0-9]% '

Ответы [ 3 ]

0 голосов
/ 17 марта 2020

Я подозреваю, что вы хотите regexp_like():

select address
from tab
where regexp_like(address, 'VIA BOEZIO[^0-9]*6')
0 голосов
/ 17 марта 2020

Это гарантирует, что дополнительных * di git до или после в '6' не будет.
Это также позволяет вам использовать любую комбинацию не-буквенных символов c между «BOEZIO» и «6».

select address
from   tab
where  regexp_like(address, 'VIA BOEZIO(\W|_)+6(\D|$)')

SQL Скрипка

0 голосов
/ 17 марта 2020

Рассмотрим:

SELECT address
FROM tab
WHERE address LIKE '%VIA%BOEZIO_6%';

При этом используется _, чтобы принять только один символ между BOEZIO и числом 6. Это будет соответствовать только:

VIA BOEZIO 6
VIA BOEZIO 6A
...