当我检查值是否为NULL时,我通常使用'=', 这不会以某种方式起作用,但是'null'有效。 为什么?有什么区别?
答案 0 :(得分:1)
基本上,null可以被认为没有值或没有值知道。 比较运算符(例如=)有效地询问未知或不存在的值是否等于另一个未知或不存在的值。在这种情况下唯一合理的回报是另一个未知或不存在的值 - null。
IS NULL询问的是未知或不存在的值 - 这可以返回true或false。
答案 1 :(得分:1)
WHERE myvalue = null
永远不会成真。因为即使“myvalue”未定义(“null”),数据库也无法确定它等于null(因为null定义意味着“未知”,并且两个“未知数”不能彼此相等)。
WHERE myvalue IS null
更直截了当。这将检查“myvalue”是否未定义(在数据库术语中为“null”)。
答案 2 :(得分:0)
请看这个
http://technet.microsoft.com/en-us/library/ms188048.aspx
您可以尝试以下代码。这适用于SQL SEVER
SET ANSI_NULLS OFF
DECLARE @VALUE INT = NULL IF @ VALUE = NULL 打印'1' 如果@VALUE为NULL 打印'IN 2'