Bedingter Operator in SQL Where-Klausel

Ich wünschte, ich könnte in SQl Server 2005 (von dem ich weiß, dass es nicht gültig ist) Folgendes für meine where-Klausel tun. Manchmal ist @teamID (an eine gespeicherte Prozedur übergeben) der Wert einer vorhandenen teamID, andernfalls ist er immer Null und ich möchte alle Zeilen aus der Team-Tabelle.

Ich habe mit Case recherchiert und der Operator muss vor oder nach der gesamten Anweisung stehen, was mich daran hindert, einen anderen Operator basierend auf dem Wert von @teamid zu haben. Andere Vorschläge als das Duplizieren meiner ausgewählten Anweisungen.

    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 

Antworten auf die Frage(5)

Ihre Antwort auf die Frage