A ver como lo explico, si una variable es 0 que seleccione todos los valores, sino sólo el valor dado.
Código SQL:
Ver originalWHERE campo =
CASE @var WHEN 0 THEN ***
ELSE @var END
Aquí el fallo está en '***' que no sé cómo indicar que me lo coja todo; en mi caso bastaría decir que sea mayor que cero porque es un campo de meses.
Saludos y gracias!