Если это так, вы сделали что-то не так. Регистр имеет значение!
SQL> with test (id, text) as
2 (select 1, 'Patient is POSITIVE. Testing was done at XYZ clinic' from dual union all
3 select 2, 'Patient is not POSITIVE. Testing was done at ZZZ clinic' from dual union all
4 select 3, 'Patient is POSITIVE; testing at xyz clinic' from dual
5 )
6 select *
7 from test
8 where text like '%POSITIVE%'
9 and text not like '%XYZ%';
ID TEXT
---------- -------------------------------------------------------
2 Patient is not POSITIVE. Testing was done at ZZZ clinic
3 Patient is POSITIVE; testing at xyz clinic --> lower case "xyz"
SQL>
Вы можете применить, например, upper
function:
8 where upper(text) like '%POSITIVE%'
9 and upper(text) not like '%XYZ%';
ID TEXT
---------- -------------------------------------------------------
2 Patient is not POSITIVE. Testing was done at ZZZ clinic
SQL>
Или использовать регулярные выражения с учетом без учета регистра ('i'
):
8 where regexp_like(text, 'POSITIVE', 'i')
9 and not regexp_like(text, 'XYZ', 'i');
ID TEXT
---------- -------------------------------------------------------
2 Patient is not POSITIVE. Testing was done at ZZZ clinic
SQL>