gpt4 book ai didi

SQL Server 2005 - 在比较中使用 Null

转载 作者:行者123 更新时间:2023-12-04 14:23:09 24 4
gpt4 key购买 nike

这更多是为了满足我自己的好奇心。鉴于以下声明:

DECLARE @result BIT
SET @result = CASE WHEN NULL <> 4 THEN 0
ELSE 1
END
PRINT @result

为什么我得到“1”而不是“0”

将其更改为:
DECLARE @result BIT
SET @result = CASE WHEN NULL IS NULL
OR NULL <> 4 THEN 0
ELSE 1
END
PRINT @result

正确地给我回“0”

我知道 NULL 比较可能很棘手,但是这个特殊的例子在我们的代码审查过程中漏掉了。

任何澄清将不胜感激

最佳答案

这是因为 3 valued logic .在第一种情况下 Unknown 不会评估为 true 所以你最终在 else

DECLARE @result BIT
SET @result = CASE WHEN Unknown THEN 0
ELSE 1
END
PRINT @result

在第二种情况下,您正在执行 True 或 Unknown,其计算结果为 true。
DECLARE @result BIT
SET @result = CASE WHEN True
OR Unknown THEN 0
ELSE 1
END
PRINT @result

关于SQL Server 2005 - 在比较中使用 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2976333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com