Du kan använda like :
select t.*
from crappytable t
where ';' || crappycolumn || ';' like '%;2;%' or
';' || crappycolumn || ';' like '%;4;%';
Du verkar veta att det är en dålig idé att lagra listor med värden i en enda kolumn, så jag ska bespara mig på harangen;)
EDIT:
Om du inte gillar like , kan du använda regexp_like() så här:
where regexp_like(';' || crappycolumn || ';', ';2;|;4;')