在MS SQL中,是否可以在WHERE子句中使用IF子句?
例子。
WHERE
IF IsNumeric(@OrderNumber) = 1
OrderNumber = @OrderNumber
ELSE
OrderNumber LIKE '%' + @OrderNumber + '%'
使用CASE语句 更新:之前的语法(正如一些人指出的那样)不起作用。 你可以使用CASE,如下。
WHERE OrderNumber LIKE
CASE WHEN IsNumeric(@OrderNumber) = 1 THEN
@OrderNumber
ELSE
'%' + @OrderNumber
END
或者你可以像@N. J. Reed指出的那样使用IF语句。
你想用CASE语句
WHERE OrderNumber LIKE
CASE WHEN IsNumeric(@OrderNumber)=1 THEN @OrderNumber ELSE '%' + @OrderNumber END