Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL:IF-Klausel in WHERE-Klausel

Verwenden Sie eine CASE-Anweisung
UPDATE: Die vorherige Syntax (wie einige Leute darauf hingewiesen haben) funktioniert nicht. Sie können CASE wie folgt verwenden:

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

Oder Sie können eine IF-Anweisung wie @N verwenden. J. Reed weist darauf hin.