Puoi usare like :
select t.*
from crappytable t
where ';' || crappycolumn || ';' like '%;2;%' or
';' || crappycolumn || ';' like '%;4;%';
Sembra che tu sappia che archiviare elenchi di valori in una singola colonna è una cattiva idea, quindi risparmierò l'arringa;)
MODIFICA:
Se non ti piace like , puoi usare regexp_like() così:
where regexp_like(';' || crappycolumn || ';', ';2;|;4;')