Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Usando a instrução CASE dentro da cláusula IN


CASE retorna apenas um valor escalar. Você pode fazer isso em vez disso. (Estou assumindo, conforme seu exemplo, que quando @StatusID =99, um valor de StatusID de 99 não é uma correspondência.)
select *
from MyTable
where (@StatusID = 99 and StatusID in (5, 11, 13))
    or (@StatusID <> 99 and StatusID = @StatusID)