SQL:'='和'是'之间有什么区别?

时间:2013-12-17 06:45:43

标签: sql

当我检查值是否为NULL时,我通常使用'=', 这不会以某种方式起作用,但是'null'有效。 为什么?有什么区别?

3 个答案:

答案 0 :(得分:1)

看看: SQL is null and = null

基本上,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'