Wie bereits angemerkt, ist es besser und einfacher, einfach mehrere Bedingungen zu verketten:
where departmentName like '%Medi%'
or departmentName like '%Ciga%'
or departmentName like '%Tabacc%';
Eine andere Möglichkeit besteht darin, diese Werte '%Medi%', '%Ciga%' und '%Tabacc%' in eine Bedingungstabelle einzufügen und dann diese Abfrage auszuführen:
select department.*
from department
cross join conditionTable
where department.departmentName like conditionTable.value;
Ich gehe hier davon aus, dass Ihre Tabelle department
ist und dass die conditionTable eine Spalte value
hat . Wenn Sie diese Lösung implementieren, sollten Sie sich um Parallelität kümmern und conditionTable nach etwas wie
select department.*
from department
inner join conditionTable on conditionTable.session = yourSessionId
where department.departmentName like conditionTable.value;
Schließlich ist eine dritte Lösung, die praktisch sein könnte, wenn Sie keine Bedingungstabelle verwenden möchten, die Generierung einer Zeichenfolge select <cond1> as value from dual union select <cond2> from dual...
und in eine dynamische Abfrage als
select department.*
from department
cross join
(select '%Medi%' as value from dual
union
select '%Ciga%' from dual
union
select '%Tabacc%' from dual) conditionTable
where department.departmentName like conditionTable.value;