我有这个案例陈述:
CASE
WHEN SecondScriptKind_ID IS NULL THEN 0
WHEN SecondScriptKind_ID IN (@SqlQuery, @SqlScript) THEN 1
ELSE 0
END
在这种情况下,WHEN SecondScriptKind_ID IS NULL
是否必要?
@SqlQuery和@SqlScript都保证包含值(NOT NULL)。
答案 0 :(得分:3)
设置ANSI_NULLS
on
时,没有必要:即使@SqlQuery
或@SqlScript
恰好是NULL
,IN
也是如此不会将NULL
SecondScriptKind_ID
与该列表匹配。换句话说,条件
NULL IN (NULL, 123)
评估为NULL
。保持明确NULL
检查的唯一原因是,如果您想为NULL
返回一个不同的数字,例如,为负数1。