Split cases in WHERE clause based on boolean variable I have to split a WHERE clause based on a boolean variable:

If ShowZeroVariable is true, I only what to show rows value 0 in a certain integer column.
If false I want to show all that are greater than 0.

Something like this:

select IntField from Table 
where  
IntField 
case 
when ShowZeroVariable  = 'true' then = '0'
else &lt;= '0'
end


I can only get it to kind of work by casting to text 
(But this doesn't filter out the zero values when false):

select IntField from Table 
where  
IntField::text like
case 
when ShowZeroVariable  = 'true' then '0'
else '%'
end


Can't seem to get a WHERE clause CASE statement to work with operators &lt; / = / &gt;.
CASE probably isn't the right tool here. But you can use a Boolean expression.

...
WHERE showzerovariable
      AND intfield = 0
       OR NOT showzerovariable
          AND intfield &gt; 0
...