布尔值,以防在where子句中使用set sql

时间:2013-01-11 21:36:24

标签: sql case where notin

我正在尝试使用Not In和布尔变量来确定是否在集合中搜索某些内容。例如:

    Select
      BLAH
    FROM
      BLAH
    WHERE
      ...
      AND CASE WHEN @variable = 'false' THEN
           warningcode1 NOT IN (101,102,103)

3 个答案:

答案 0 :(得分:2)

试试这个

Select
      BLAH
    FROM
      BLAH
    WHERE
      ...
      AND (@variable <> 'false' OR warningcode1 NOT IN (101,102,103))

答案 1 :(得分:2)

只需使用:

AND (@variable <> 'false' OR  warningcode1 NOT IN (101,102,103))

因此,仅当变量='false'时,warningcode1才有意义,否则它将被忽略。

答案 2 :(得分:0)

尝试使用if

AND IF( @variable = 'false' , warningcode1 NOT IN (101,102,103) , warningcode1 IN (101,102,103) )