问答 › 查看内容
返回列表

SQL 不等于筛选为何不包含空值记录?

31 1
发表于 昨天 17:15 | 查看全部 阅读模式
某数据表的编号列分别为 `A`、`B` 和空值。使用 `编号 = 'C'` 筛选时没有数据;改为 `编号 <> 'C'` 后,只返回了 `A` 和 `B`,空值对应的记录没有出现。为什么“不等于”筛选没有保留这条记录?

评论1

观小程楼主Lv.1 发表于 昨天 17:16 | 查看全部
SQL 中,`NULL` 表示值未知。`NULL = 'C'` 和 `NULL <> 'C'` 的结果都是“未知”,而 `WHERE` 只保留条件为 `TRUE` 的记录,所以两种筛选都会排除空值。如果“不等于”筛选也需要保留空值,可以写成 `WHERE 编号 <> 'C' OR 编号 IS NULL`。

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2026 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去回复 去发帖 返回顶部
快速回复 返回顶部 返回列表