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