【问题标题】:SQL: What's the difference between '=' and 'is'? [duplicate]SQL:'='和'is'有什么区别? [复制]
【发布时间】:2013-12-17 06:45:42
【问题描述】:

当我检查一个值是否为NULL时,我通常使用'=', 这不起作用,但“为空”有效。 为什么?有什么区别?

【问题讨论】:

标签: sql


【解决方案1】:
WHERE myvalue = null 

永远不会是真的。因为即使“myvalue”是未定义的(“null”),数据库也无法确定它等于null(因为null的定义意味着“未知”,两个“未知”不能彼此相等)。

WHERE myvalue IS null 

更直接。这将检查“myvalue”是否未定义(在数据库术语中为“null”)。

【讨论】:

  • 很有趣,谢谢,我来自 Java,所以用 '=' 检查 NULL 对我来说听起来很合理......
【解决方案2】:

看看: SQL is null and = null

基本上,null 可以被认为是没有值或不知道值。 比较运算符(例如 =)有效地询问未知或不存在的值是否等于另一个未知或不存在的值。在这种情况下,唯一合理的返回是另一个未知或不存在的值 - null。

IS NULL 询问值是未知还是不存在 - 这可以返回真或假。

【讨论】:

    【解决方案3】:

    请看这里

    http://technet.microsoft.com/en-us/library/ms188048.aspx

    你可以试试下面的代码。这是针对 SQL SEVER 的

    设置 ANSI_NULLS 关闭

    声明@VALUE INT =NULL 如果@VALUE=NULL 打印 'IN 1' 如果@VALUE 为空 打印“输入 2”

    【讨论】:

      猜你喜欢
      • 2016-07-25
      • 2014-02-24
      • 2015-05-18
      • 2010-12-10
      • 2013-06-19
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      相关资源
      最近更新 更多