Come è stato già commentato, è meglio e più semplice concatenare solo diverse condizioni:
where departmentName like '%Medi%'
or departmentName like '%Ciga%'
or departmentName like '%Tabacc%';
Un altro modo è inserire quei valori '%Medi%', '%Ciga%' e '%Tabacc%' in una conditionTable, quindi eseguire questa query:
select department.*
from department
cross join conditionTable
where department.departmentName like conditionTable.value;
Presumo qui che la tua tabella sia department
e che la conditionTable ha una colonna value
. Se implementi questa soluzione, dovresti preoccuparti della concorrenza e filtrare conditionTable in base a qualcosa come
select department.*
from department
inner join conditionTable on conditionTable.session = yourSessionId
where department.departmentName like conditionTable.value;
Infine, una terza soluzione che potrebbe essere utile, se non si desidera utilizzare una conditionTable, è generare una stringa select <cond1> as value from dual union select <cond2> from dual...
e inserito in una query dinamica come
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;