本文介绍了SQL:WHERE 子句中的 IF 子句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以在 MS SQL 的 WHERE 子句中使用 IF 子句?
Is it possible to use an IF clause within a WHERE clause in MS SQL?
示例:
WHERE
IF IsNumeric(@OrderNumber) = 1
OrderNumber = @OrderNumber
ELSE
OrderNumber LIKE '%' + @OrderNumber + '%'
推荐答案
使用 CASE 声明
更新: 之前的语法(正如一些人所指出的)不起作用.您可以按如下方式使用 CASE:
Use a CASE statement
UPDATE: The previous syntax (as pointed out by a few people) doesn't work. You can use CASE as follows:
WHERE OrderNumber LIKE
CASE WHEN IsNumeric(@OrderNumber) = 1 THEN
@OrderNumber
ELSE
'%' + @OrderNumber
END
或者您可以使用 IF 语句,例如@N.J. Reed 指出.
Or you can use an IF statement like @N. J. Reed points out.
这篇关于SQL:WHERE 子句中的 IF 子句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!