Ist es möglich, eine IF-Klausel innerhalb einer WHERE-Klausel in MS SQL zu verwenden?
Beispiel:
WHERE
IF IsNumeric(@OrderNumber) = 1
OrderNumber = @OrderNumber
ELSE
OrderNumber LIKE '%' + @OrderNumber + '%'
Verwenden Sie eine CASE-Anweisung UPDATE: Die vorherige Syntax (auf die einige Leute 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 verwenden, wie @N. J. Reed anmerkt.
Sie wollen die CASE-Anweisung
WHERE OrderNumber LIKE
CASE WHEN IsNumeric(@OrderNumber)=1 THEN @OrderNumber ELSE '%' + @OrderNumber END