セット内で何かを検索するかどうかを決定するために、どこにブール変数を指定して Not In を使用しようとしています。例えば:
Select
BLAH
FROM
BLAH
WHERE
...
AND CASE WHEN @variable = 'false' THEN
warningcode1 NOT IN (101,102,103)
これを試して
Select
BLAH
FROM
BLAH
WHERE
...
AND (@variable <> 'false' OR warningcode1 NOT IN (101,102,103))
使用するだけです:
AND (@variable <> 'false' OR warningcode1 NOT IN (101,102,103))
したがって、warningcode1 は、変数 = 'false' の場合にのみ問題になり、それ以外の場合は無視されます。
ifでこれを試してください
AND IF( @variable = 'false' , warningcode1 NOT IN (101,102,103) , warningcode1 IN (101,102,103) )