Jak již bylo zmíněno, je lepší a jednodušší pouze zřetězit několik podmínek:
where departmentName like '%Medi%'
or departmentName like '%Ciga%'
or departmentName like '%Tabacc%';
Dalším způsobem je vložit tyto hodnoty '%Medi%', '%Ciga%' a '%Tabacc%' do conditionTable a poté spustit tento dotaz:
select department.*
from department
cross join conditionTable
where department.departmentName like conditionTable.value;
Zde předpokládám, že váš stůl je department
a že tabulka conditionTable má sloupec value
. Pokud implementujete toto řešení, měli byste se starat o souběžnost a filtrovat conditionTable podle něčeho jako
select department.*
from department
inner join conditionTable on conditionTable.session = yourSessionId
where department.departmentName like conditionTable.value;
Konečně třetím řešením, které by mohlo být užitečné, pokud nechcete používat tabulku podmínek, je vygenerovat řetězec select <cond1> as value from dual union select <cond2> from dual...
a umístí se do dynamického dotazu jako
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;