WITH test ( a, b, c ) AS (

	-- ... truncated ...

)
SELECT
	*
FROM
	test
WHERE
	(
			( a > 2 )
		OR
			( a = 2 AND b > 2 )
		OR
			( a = 2 AND b = 2 AND c >= 2 )
	)
AND
	(
			( a < 3 )
		OR
			( a = 3 AND b < 1 )
		OR
			( a = 3 AND b = 1 AND c < 1 )
	)
;