Som det allerede er kommenteret, er det bedre og enklere blot at sammenkæde flere betingelser:
where departmentName like '%Medi%'
or departmentName like '%Ciga%'
or departmentName like '%Tabacc%';
En anden måde er at indsætte disse værdier '%Medi%', '%Ciga%' og '%Tabacc%' i en conditionTable og derefter køre denne forespørgsel:
select department.*
from department
cross join conditionTable
where department.departmentName like conditionTable.value;
Jeg antager her, at dit bord er department
og at conditionTable har en kolonne value
. Hvis du implementerer denne løsning, bør du bekymre dig om samtidighed og filtrere conditionTable efter noget som
select department.*
from department
inner join conditionTable on conditionTable.session = yourSessionId
where department.departmentName like conditionTable.value;
Endelig er en tredje løsning, der kan være praktisk, hvis du ikke ønsker at bruge en conditionTable, at generere en streng select <cond1> as value from dual union select <cond2> from dual...
og placeres i en dynamisk forespørgsel som
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;