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 视为假值。
您好,这是一个非常基本的问题,但我无法找到明确的答案。
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 视为假值。