sql >> Databasteknik >  >> RDS >> Sqlserver

SQL:IF-sats i WHERE-sats

Använd en CASE-sats
UPPDATERING: Den tidigare syntaxen (som påpekats av några personer) fungerar inte. Du kan använda CASE enligt följande:

WHERE OrderNumber LIKE
  CASE WHEN IsNumeric(@OrderNumber) = 1 THEN 
    @OrderNumber 
  ELSE
    '%' + @OrderNumber
  END

Eller så kan du använda en IF-sats som @N. J. Reed påpekar.



  1. Grundläggande om tabelluttryck, del 6 – Rekursiva CTE:er

  2. Ge privilegier för en viss databas i PostgreSQL

  3. SQLite främmande nyckel

  4. Återställ en SQLite-databas