Jak już skomentowaliśmy, lepiej i prościej jest po prostu połączyć kilka warunków:
where departmentName like '%Medi%'
or departmentName like '%Ciga%'
or departmentName like '%Tabacc%';
Innym sposobem jest wstawienie tych wartości „%Medi%”, „%Ciga%” i „%Tabacc%” do tabeli warunków, a następnie uruchomienie tego zapytania:
select department.*
from department
cross join conditionTable
where department.departmentName like conditionTable.value;
Zakładam, że twoja tabela to department
oraz że tabela warunków ma kolumnę value
. Jeśli zaimplementujesz to rozwiązanie, powinieneś zadbać o współbieżność i filtrować tabelęwarunków według czegoś takiego jak
select department.*
from department
inner join conditionTable on conditionTable.session = yourSessionId
where department.departmentName like conditionTable.value;
Wreszcie trzecie rozwiązanie, które może być przydatne, jeśli nie chcesz używać tabeli warunków, to wygenerowanie ciągu select <cond1> as value from dual union select <cond2> from dual...
i umieszczone w dynamicznym zapytaniu 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;