SQL IF 对 NULL 的计算结果是什么

SQL What does IF evaluate to for NULL

您好,这是一个非常基本的问题,但我无法找到明确的答案。

IF 在 SQL 中对 NULL 的计算结果是什么?如果 fieldXYZ 为 NULL

,下面的代码会发生什么
IF fieldXYZ=SomeValue
//do something
ELSE 
//do something else

更新:

我发现一个结果表明 NULL 可以被认为是假的

https://technet.microsoft.com/en-us/library/ms182587(v=sql.110).aspx

首先,我认为您的 if..else 语句不完整,因为您没有为列 fieldXYZ 定义任何表达式。通常,当您编写 if..else 语句时,您会希望编写一个表达式来将您的列值与某些内容进行比较。如果要处理空值,可以显式检查它们。这是该语法的要点:

--This handles null check explicitly
IF fieldXYZ IS NOT NULL AND fieldXYZ = 'somevalue'
//do something
ELSE 
//do something else

此外,如果在上述语句中 fieldXYZ 传递了一个 NULL 值,那么第一个条件不满足,因此 else 条件立即适用于 scenario.Hope 这有帮助!

(我不愿意回答我自己的问题,但在没有任何解决方案的情况下,重新发布我的评论作为答案)

显然正确的方法是将 NULL 视为假值。