繁体   English   中英

在此CASE表达式中是否需要查询IS NULL?

[英]Is querying for IS NULL necessary in this CASE expression?

我有以下案例说明:

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)。

ANSI_NULLS设置为on ,则没有必要:即使@SqlQuery@SqlScript碰巧为NULLIN也不SecondScriptKind_ID NULL SecondScriptKind_ID匹配到该列表。 换句话说,条件

NULL IN (NULL, 123)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM