sql >> Base de Datos >  >> RDS >> Sqlserver

Uso de la declaración CASE dentro de la cláusula IN

CASE devuelve un valor escalar solamente. Puedes hacer esto en su lugar. (Supongo, según su ejemplo, que cuando @StatusID =99, un valor de StatusID de 99 no coincide).

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