本文介绍了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 子句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-08 18:57