SQL:为什么在此 where 子句中过滤掉 NULL 值?

2023-11-22

在我的表中,我有一个可为空的位列(旧系统...),另一位开发人员最近对存储过程进行了更改,以仅显示位列不为 true 的值 (1)。因为这是一个可为空的列,我们注意到如果该列为 NULL,则不会选取记录。为什么是这样?

其他开发人员和我都同意 NULL 1...这是 SQL 中的错误还是这样设计的?看起来像是一个设计缺陷。

当前代码:

(VoidedIndicator <> 1)

建议的修复:

(VoidedIndicator <> 1 OR VoidedIndicator IS NULL)

澄清(乔恩·埃里克森)

VoidedIndicator 是一个可为空的位字段,因此它可以具有以下值:NULL、0 或 1

当使用 where 子句(例如 (VoidedIndicator 1))创建 SQL 语句时,我们仅返回具有 VoidedIndicator == 0 的记录,但我们期望 VoidedIndicator == 0 和 VoidedIndicator IS NULL。为什么是这样?


有很多好的答案,但让我给你一个非常简洁的版本。

对于 SQL,Null 并不意味着“无值”,而是意味着“未知值”

考虑到这一点,请考虑用简单的英语回答您提出的 SQL 问题。

Q: Is this unknown value not equal to 1? 
A: I don't know, there is no way to tell without knowing the value.

Hence Null<>1 = Null
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL:为什么在此 where 子句中过滤掉 NULL 值? 的相关文章

随机推荐

  • 无法在具有 @objc 属性的协议中使用自定义类?

    我正在尝试创建一个用于 JSON 加载委托的协议 JSONLoaderDelegate 我的另一堂课叫做JSONLoader 应该将事件分派给它的委托 实现JSONLoaderDelegate协议 如 self delegate jsonL
  • Laravel 8 - 找不到驱动程序:Illuminate\Database\QueryException 无法找到驱动程序(SQL:从 `list` 中选择 *)

    我已经在我的 Linux Mint 20 上安装了 Laravel 8 作为我的个人实验 所以我对 Laravel 的新版本很陌生 我搜索了许多来源如何使用 CRUD 方法显示表 以便该表显示在网络中 其中包含来自 MySQL 数据库的数据
  • Spring data JPA:在结果元组中找不到别名!执行自定义查询时出错

    我正在尝试使用 mysql 数据库执行自定义查询 Queryspring data jpa 的注解 该表是 Field Type Null Key Default Extra id decimal 10 0 NO PRI NULL firs
  • iOS中如何实现弹出对话框?

    计算后 我想显示一个弹出窗口或警报框 向用户传达消息 有谁知道我在哪里可以找到有关此的更多信息 Yup a UIAlertView可能就是您正在寻找的 这是一个例子 UIAlertView alert UIAlertView alloc i
  • std::bind 创建的函子住在哪里?

    函数指针可以指向自由函数 函数对象 成员函数调用的包装器等任何内容 但是 std bind 创建的函子可以有状态 也可以有自定义创建的函子 该状态分配在哪里 谁在删除它 考虑下面的例子 当向量被删除时 状态 数字10 会被删除吗 谁知道在函
  • 计算GPS坐标以形成给定大小的半径

    我想出了一种方法 它接受坐标和范围 以英里为单位 并返回围绕原点形成圆圈的坐标列表 我似乎已经取得了一些进展 但我在降低范围部分方面遇到了问题 private const Double LAT MILE 0 0144839 private
  • 仅使用 XAML 在左键单击时显示上下文菜单

    WPF 的默认行为ContextMenu是当用户右键单击时显示它 我想要ContextMenu当用户单击鼠标左键时显示 看起来这应该是一个简单的属性ContextMenu 但事实并非如此 我操纵了它 这样我就可以处理LeftMouseBut
  • 为什么匿名函数表达式和命名函数表达式的初始化如此不同?

    我正在看第13条或 ECMAScript 规范 v 5 匿名函数表达式的初始化如下 返回按照 13 2 中的规定创建新 Function 对象的结果 其参数由 FormalParameterListopt 指定 主体由 FunctionBo
  • 作曲家自动加载

    我目前正在尝试将 PSR 0 自动加载与 Composer 结合使用 但出现以下错误 Fatal error Class Twitter Twitter not found 我的目录结构如下 Project src Twitter Twit
  • 如何将多处理与请求模块一起使用?

    我是 python 的新开发者 我的代码是下面的代码 import warnings import requests import multiprocessing from colorama import init init autores
  • 为什么我需要在 g++ 中使用 typedef typename 而不是 VS?

    自从 GCC 发现我有这个问题以来已经有一段时间了 但它今天才发生 但我一直不明白为什么 GCC 需要在模板中使用 typedef typename 而 VS 和我猜 ICC 不需要 typedef typename 是一个 bug 还是一
  • 如何将图像作为资源包含在 C++ 可执行文件中?

    是否可以将图像 jpegs 作为资源包含在 win32 c 可执行文件中 如果是这样怎么办 如果仅是 Windows 则使用自定义资源 如果您想要跨平台的东西 那么请执行我为最近的项目所做的操作 创建一个将 JPEG 编码为char buf
  • Capybara 与 jquery.selectize 的集成测试

    如何使用表单编写水豚集成测试jquery selectize 我想测试用户输入几个值 这里的大多数答案都从底层改变了内容 并且与用户交互不同 这是一个接近用户所做操作的版本 waits for the text to show up in
  • Google App Engine 应用程序实例回收和响应时间

    我在 GAE for Java 小组上发布了这篇文章 但我希望在这里更快地得到一些答案 我决定对我的应用程序进行一些长期运行的性能测试 我 每 5 30 分钟创建一些小型客户端点击应用程序 我运行 3 5 与此类客户端的线程数 我注意到响应
  • NodeJS - 设置mean.io找不到模块错误

    我对整个 node js 事物有点陌生 当尝试安装 MEAN 包时http mean io 我忠实地遵循了以下步骤 我 cd 到我的目录 运行 npm install 然后运行 grunt 命令 并收到此错误 Error Cannot fi
  • 如何解码 HTML 实体

    我有带有 HTML 实体的字符串变量 var str Some text x26 text 我想将其转换 解码 为原始字符 Some text text JavaScript 没有内置函数来实现想要的结果 我无法使用 jQuery 或 DO
  • 简单的浮点数会失去精度

    我正在使用 Delphi XE2 Update 3 即使是最简单的浮点数也存在精度问题 例如3 7 给定以下代码 32 位控制台应用程序 program Project1 APPTYPE CONSOLE R res uses System
  • Angular2 - 在 Azure 中托管时页面刷新 404ing

    我正在开发 Angular2 应用程序 它使用 Angular common 2 0 0 rc 4 和 Angular router 3 0 0 beta 2 我的问题是 当我在某些页面上使用浏览器刷新时 我看到一条错误消息 您正在查找的资
  • 使用 -MM 在 Makefile 中生成依赖项时出现问题

    我是 Makefiles 和 g 的新手 在使用 MM 标志生成项目文件的依赖项时遇到了问题 我发布了我正在使用的 Makefile 供您考虑 请看一下 OUTPUT ROOT output SOURCE ROOT source TITLE
  • SQL:为什么在此 where 子句中过滤掉 NULL 值?

    在我的表中 我有一个可为空的位列 旧系统 另一位开发人员最近对存储过程进行了更改 以仅显示位列不为 true 的值 1 因为这是一个可为空的列 我们注意到如果该列为 NULL 则不会选取记录 为什么是这样 其他开发人员和我都同意 NULL