Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Verwenden der CASE-Anweisung in der IN-Klausel

CASE gibt nur einen Skalarwert zurück. Sie können dies stattdessen tun. (Ich gehe gemäß Ihrem Beispiel davon aus, dass bei @StatusID =99 ein StatusID-Wert von 99 keine Übereinstimmung ist.)

select *
from MyTable
where (@StatusID = 99 and StatusID in (5, 11, 13))
    or (@StatusID <> 99 and StatusID = @StatusID)