Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Utilisation de l'instruction CASE dans la clause IN

CASE renvoie une valeur scalaire uniquement. Vous pouvez le faire à la place. (Je suppose, selon votre exemple, que lorsque @StatusID =99, une valeur StatusID de 99 ne correspond pas.)

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