sql >> Databasteknik >  >> RDS >> Sqlserver

Använder CASE Statement i IN-klausulen

CASE returnerar endast ett skalärt värde. Du kan göra detta istället. (Jag antar, enligt ditt exempel, att när @StatusID =99, är ett StatusID-värde på 99 inte en matchning.)

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


  1. Att byta Django-projekt från sqlite3-backend till postgresql misslyckas när datadump laddas

  2. Stänger postgres (pg) klientanslutning i node.js

  3. Oracle SQL - Konvertera N raders kolumnvärden till N kolumner i 1 rad

  4. När är beräknade kolumner lämpliga?