Declaración de un caso Sql dentro de Sql IN

tengo unsql declaración que tiene una condición donde como abajo

WHERE (TABLE1.Field=@Id OR (@Id=0))

Esto funciona bien cuando@Id los valores son cero o más

Ahora necesito hacer coincidir varios valores cuando @Id se convierta en 0.

Intenté algo como abajo que no funciona. Sé que puedo usarIF-ELSE aquí, pero me pregunto si esto se puede lograr utilizandocase estación

WHERE TABLE1.Field IN (CASE WHEN @Id>0 THEN @Id ELSE (6,16,18) END)

Respuestas a la pregunta(2)

Su respuesta a la pregunta