Operador condicional en SQL Cláusula Where

Desearía poder hacer algo como lo siguiente en SQl Server 2005 (que sé que no es válido) para mi cláusula where. A veces, @teamID (pasado a un procedimiento almacenado) será el valor de un teamID existente, de lo contrario siempre será cero y quiero todas las filas de la tabla Team.

Investigué usando Case y el operador debe aparecer antes o después de toda la declaración, lo que me impide tener un operador diferente en función del valor de @teamid. Cualquier sugerencia que no sea duplicar mis declaraciones selectas.

    declare @teamid int
    set @teamid = 0

    Select Team.teamID From Team
      case @teamid
         when 0 then 
            WHERE Team.teamID > 0
         else
            WHERE Team.teamID = @teamid
      end 

Respuestas a la pregunta(5)

Su respuesta a la pregunta