Boolean check on fields returning any of them except if all have same value
You can use something like this:

where (true in (a,b,c,d)
       and (a,b,c,d) &lt;&gt; (true,true,true,true));


Which can be simplified (suggested by ypercubeᵀᴹ) to:

where true in (a,b,c,d) and false in (a,b,c,d)


Note that it will not handle NULL values properly. If you want that as well, you will need to use coalesce().