首页 > 数据库 > mysql教程 > 为什么 SQL Server 中 NULL = NULL 返回 False?

为什么 SQL Server 中 NULL = NULL 返回 False?

Mary-Kate Olsen
发布: 2025-01-20 23:18:10
原创
520 人浏览过

Why Does NULL = NULL Return False in SQL Server?

理解为什么 NULL = NULL 在 SQL Server 中为 False

在 SQL Server 中,WHERE 子句条件(例如 nullParam = NULL)的计算结果为 false。这可能看起来违反直觉,因为 NULL 通常表示缺失数据。 关键是理解 SQL Server 对 NULL.

的解释

NULL 不仅仅代表缺失的数据;它代表一个未知或不存在的值。 因此,比较两个 NULL 值本质上是不确定的。 我们不能明确地说两个未知数是否相等或不相等。这种不确定性会导致错误的评估。

这符合 ANSI SQL-92 标准。 默认情况下,SQL Server 使用 ANSI_NULLS ON 运行,强制执行此行为。 但是,设置 ANSI_NULLS OFF 会将比较结果更改为 true。

考虑这个例子:

SET ANSI_NULLS OFF;

IF NULL = NULL
    PRINT 'true';
ELSE
    PRINT 'false';

SET ANSI_NULLS ON;

IF NULL = NULL
    PRINT 'true';
ELSE
    PRINT 'false';
登录后复制

使用ANSI_NULLS OFF,输出为“true”。 使用 ANSI_NULLS ON(默认值),输出为“false”,演示此设置如何控制 SQL Server 对 NULL 比较的处理。 使用 IS NULL 是检查空值的正确方法。

以上是为什么 SQL Server 中 NULL = NULL 返回 False?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板