Is het mogelijk om een IF-clausule te gebruiken binnen een WHERE-clausule in MS SQL?
Voorbeeld:
WHERE
IF IsNumeric(@OrderNumber) = 1
OrderNumber = @OrderNumber
ELSE
OrderNumber LIKE '%' + @OrderNumber + '%'
Gebruik een CASE statement UPDATE: De vorige syntaxis (zoals opgemerkt door een paar mensen) werkt niet'*. Je kunt CASE als volgt gebruiken:
WHERE OrderNumber LIKE
CASE WHEN IsNumeric(@OrderNumber) = 1 THEN
@OrderNumber
ELSE
'%' + @OrderNumber
END
Of je kunt een IF statement gebruiken zoals @N. J. Reed aangeeft.
Je wilt de CASE verklaring
WHERE OrderNumber LIKE
CASE WHEN IsNumeric(@OrderNumber)=1 THEN @OrderNumber ELSE '%' + @OrderNumber END