¿Es posible utilizar una cláusula IF dentro de una cláusula WHERE en MS SQL?
Ejemplo:
WHERE
IF IsNumeric(@OrderNumber) = 1
OrderNumber = @OrderNumber
ELSE
OrderNumber LIKE '%' + @OrderNumber + '%'
Utilice una sentencia CASE Actualización: La sintaxis anterior (señalada por algunas personas) no funciona. Puede utilizar CASE de la siguiente manera:
WHERE OrderNumber LIKE
CASE WHEN IsNumeric(@OrderNumber) = 1 THEN
@OrderNumber
ELSE
'%' + @OrderNumber
END
O puedes usar una sentencia IF como señala @N. J. Reed.
Quiere que la declaración CASE
WHERE OrderNumber LIKE
CASE WHEN IsNumeric(@OrderNumber)=1 THEN @OrderNumber ELSE '%' + @OrderNumber END