sql >> Databáze >  >> RDS >> Sqlserver

Použití příkazu CASE uvnitř klauzule IN

CASE vrátí pouze skalární hodnotu. Místo toho to můžete udělat. (Předpokládám, jako ve vašem příkladu, že když @StatusID =99, hodnota StatusID 99 se neshoduje.)

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


  1. Upgrade Laravelu 5.4, převod na utf4mb z utf8

  2. MySQL se nepřipojuje v cmd

  3. Porušení omezení integrity:1048 Sloupec 'taggable_id' nemůže mít hodnotu null

  4. Aktualizační dotaz Oracle pro aktualizaci záznamů v sekvenčním pořadí