是否可以在 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
或者您可以使用 IF 语句,例如 @ N. J. Reed指出。
关于SQL:WHERE 子句中的 IF 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/87821/