2

I've got this case statement:

CASE 
  WHEN SecondScriptKind_ID IS NULL THEN 0
  WHEN SecondScriptKind_ID IN (@SqlQuery, @SqlScript) THEN 1
  ELSE 0 
END

Is the WHEN SecondScriptKind_ID IS NULL necessary in this case?

Both @SqlQuery and @SqlScript are guaranteed to contain values (NOT NULL).

4

1 回答 1

3

ANSI_NULLS设置on时,没有必要:即使@SqlQuery@SqlScript恰好是NULL,也不会将INa 匹配NULL SecondScriptKind_ID到该列表。换句话说,条件

NULL IN (NULL, 123)

评估为NULL。保持显式NULL检查的唯一原因是,如果您想为 1 返回一个不同的数字NULL,例如负 1。

于 2013-08-15T10:06:47.127 回答