Как использовать специальный символ '_' в предложении where в oracle - PullRequest
0 голосов
/ 18 марта 2019

Я хочу получить столбцы с именем 'pl_name', содержащие _5M_. Итак, я сделал следующий запрос, но он дает все значения, но я хочу pl_name как AR_5M_testclient_986

Используемый запрос, как показано ниже

select *from mn_table where status='Y' and upper(pl_name) like'%_5M_%'

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Обрабатывать подчеркивание как подстановочный знак.Используйте [_].

select * from mn_table where status='Y' and upper(pl_name) like '%[_]5M[_]%';
0 голосов
/ 18 марта 2019

* * * * _ рассматривается в SQL как подстановочный знак, поэтому он фактически пытается сопоставить любой символ.Вы можете обернуть _ в [].Это должно вернуть то, что вы хотите:

select * from mn_table where status='Y' and upper(pl_name) like'%[_]5M[_]%'

Это будет соответствовать любому символу в квадратных скобках.

В качестве альтернативы, используйте escape ESCAPE '\':

select * from mn_table where status='Y' and upper(pl_name) like'%\_5M\_%' ESCAPE '\'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...