How to return different statements in where clause ? (oracle)
Just use grouped WHERE conditions:

WHERE COLUMN1&lt;= Y 
   AND ((ID &lt; X AND COLUMN1&lt;COLUMN2)
        OR(ID &gt;= X AND COLUMN2&gt;COLUMN3))
AND COLUMN 3 = XYZ;


Remember you really just want to get some boolean evaluations back here - as long as you can reduce your requirements to distinct sets of conditions you can put it into WHERE which will be plenty fast.

The time to use CASE is if you have overlapping criteria that you need to short circuit.