Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Utilizzo dell'istruzione CASE all'interno della clausola IN

CASE restituisce solo un valore scalare. Puoi farlo invece. (Suppongo, come nel tuo esempio, che quando @StatusID =99, un valore StatusID di 99 non corrisponde.)

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