SQL10过滤年龄空值:为什么age不等于空字符串,不能代替IS NOT NULL
这题要剔除没有获取到年龄的用户再输出设备 ID、性别、年龄、学校。我原来的代码用了age ! 牛客样例也通过了。但回头看这个条件没有准确表达题意。关键区别是数据库里的 NULL不是屏幕上看起来空白的字符串也不是数值零。1. 正确条件直接写出来SELECT device_id, gender, age, university FROM user_profile WHERE age IS NOT NULL;题目要判断是否记录了年龄因此检查 age 是否为 NULL。没有要求剔除零也没有要求再过滤学校。原解法保留在下面作为错误对照不应继续照抄SELECT device_id, gender, age, university FROM user_profile WHERE age ! ;这张图说明旧查询通过了当时的数据不能证明它已经覆盖所有边界。原样例的已知年龄都是正整数恰好没有揭示数值零与空字符串比较的问题。2. 一张表分清 NULL、0 与普通数值以下使用独立演示表不覆盖 user_profile。零值用于测试查询语义它是否符合某个真实业务的年龄规则是另一回事。CREATE TABLE sql10_demo ( device_id INTEGER PRIMARY KEY, gender VARCHAR(14) NOT NULL, age INTEGER, university VARCHAR(32) NOT NULL ); INSERT INTO sql10_demo VALUES (301, male, 21, 北京大学), (302, female, NULL, 复旦大学), (303, female, 0, 浙江大学), (304, male, 25, 山东大学);SELECT device_id, age, age IS NOT NULL AS has_age, age NULL AS wrong_null_comparison FROM sql10_demo ORDER BY device_id;本次临时数据库结果device_idagehas_agewrong_null_comparison301211NULL302NULL0NULL30301NULL304251NULLage NULL也不正确与 NULL 的普通比较得到未知不是“判断它是否未知”。WHERE 不会保留这些未知结果。MySQL 官方 NULL 说明。真正的过滤查询SELECT device_id, gender, age, university FROM sql10_demo WHERE age IS NOT NULL ORDER BY device_id;保留 301、303、304即 21、0、25 三个已记录值。若业务要求年龄必须大于零应明确增加AND age 0那是另一个条件不要藏在一次隐式转换中。3. 为什么旧条件在 MySQL 中尤其不可靠age 是整数列是字符串。MySQL 比较不同类型时可能进行数值转换空字符串在这种数值比较中相当于零因此age ! 可能把已记录的零年龄也排除。这一步是依据 MySQL 类型转换规则 的分析不是本轮 SQLite 的运行输出。不同数据库对类型混合比较可能不同不能拿一个引擎的表现证明另一个引擎也这样执行。原样例里 NULL 行也没被保留但原因是普通比较得到未知而被 WHERE 排除不是它找到了“空字符串年龄”。输出暂时相同条件含义仍可能不一样。另外整数列插入空字符串是否报错、是否被转换还涉及 SQL 模式。这里不依赖这种脏数据来设计查询也不替所有 MySQL 配置编造同一个结果。4. COUNT 也能帮我检查缺失值SELECT COUNT(*) AS total_rows, COUNT(age) AS known_age_rows, SUM(CASE WHEN age IS NULL THEN 1 ELSE 0 END) AS missing_age_rows FROM sql10_demo;本例得到 4、3、1。COUNT(*) 数行COUNT(age) 不计 age 为 NULL 的行零值仍计入。这可以作为查看数据质量的小检查但不是用聚合结果替代逐行查询。如果上游将零约定成“未填写”查询应该体现该约定最好也审查数据模型它不能改变 SQL 中 NULL 与零本来不同的事实。5. 本次怎样验证本次在 SQLite 3.47.2 临时库运行上面的共同 SQL核对有年龄、无年龄、零、空表及全部缺失等案例MySQL 的类型转换问题只依据官方文档分析。未启动原有 MySQL 服务未修改你电脑上的已有数据库也没有声称重新通过牛客隐藏测试。与 SQL9 排除某学校 放在一起看一个比较已知字段值一个判断值是否缺失。先明确这两类需求才能决定用不等比较还是 IS NOT NULL而不是看到空白就写! 。

相关新闻

MySQL学生成绩管理系统:从建库建表到索引优化全实践

MySQL学生成绩管理系统:从建库建表到索引优化全实践

做项目的人对“管理系统”三个字应该都不陌生,学生成绩管理系统(MySQL)更是课程设计、毕业设计里的常客。我这次做的这套系统,表面上看就是记录“哪个学生哪门课考了多少分”,但真正做下来你会发现,它几乎能…

2026/10/4 9:33:27 阅读更多 →
Win11局域网共享:Guest账户开启、排查与安全设置

Win11局域网共享:Guest账户开启、排查与安全设置

1. 局域网共享方式盘点:guest 登录到底适合哪种场景前几天有个朋友问我:Win11 怎么开 guest 账户,让局域网里那几台旧电脑直接访问自己机器上的文件夹?这个问题在 Windows 11 时代听着有点复古,但在小办公室、宿舍、家…

2026/10/4 9:33:27 阅读更多 →
GNSS接收机抗干扰算法仿真:脉冲与窄带干扰抑制Matlab实现

GNSS接收机抗干扰算法仿真:脉冲与窄带干扰抑制Matlab实现

导航接收机最怕的就是射频前端被强干扰"打蒙"。不管是GPS还是北斗,民用接收机在天线口收到的信号本来就被压在噪声底底下20多dB,一旦出现脉冲干扰或者窄带干扰,接收机内部的自动增益控制(AGC)会被强干扰拉偏…

2026/10/4 9:32:26 阅读更多 →

最新新闻

Android Ext4文件系统故障排查:从Journal机制到fsck实操

Android Ext4文件系统故障排查:从Journal机制到fsck实操

前阵子帮朋友排查一台老设备的Android系统,现象是重启后一直卡在开机动画,进了Recovery发现/data分区挂载失败。折腾了一整天,最后定位到是Ext4文件系统的journal区域出现了坏块。类似的坑我踩过不止一次,而且现在网上关于Android…

2026/10/4 10:18:03 阅读更多 →
EtherCAT从站芯片选型避坑指南:瑞萨、NXP、TI与国产四大阵营实测对比

EtherCAT从站芯片选型避坑指南:瑞萨、NXP、TI与国产四大阵营实测对比

1. 这句话为什么让工程师当场皱眉——“内置EtherCAT”背后的四重陷阱“都写‘内置EtherCAT’,但瑞萨、NXP、TI 和国产芯片根本不是一回事”——这句话在工控论坛刚发出来,底下就冒出二十多条“1”和“血泪史”。我第一次看到时也愣了三秒:不…

2026/10/4 10:18:03 阅读更多 →
计算机网络基础知识复习:拓扑结构、网络分类与功能考点全解析

计算机网络基础知识复习:拓扑结构、网络分类与功能考点全解析

简介:这份PPT课件面向参加对口单招计算机应用专业考试的考生,是“计算机网络技术”总复习中专题一“计算机网络基础知识”的配套讲练材料,适合作为考前2课时的集中复习讲义。资源仅含1个pptx文件,压缩包大小461KB,内容…

2026/10/4 10:18:03 阅读更多 →
DolphinDB多协议工业数据接入:MQTT与Modbus统一测点流实战

DolphinDB多协议工业数据接入:MQTT与Modbus统一测点流实战

1. 工业数据接入这件事,为什么值得单独拎出来讲搞过工业物联网的人都有一个共同体会:设备侧的数据接入,是整个数据链路里最脏、最累、最容易翻车的环节。PLC、传感器、数控机床、电表、温控器,这些设备来自不同年代、不同厂商&…

2026/10/4 10:18:03 阅读更多 →
CiteSpace入门:CNKI数据导入与知识图谱可视化全流程解析

CiteSpace入门:CNKI数据导入与知识图谱可视化全流程解析

1. 为什么大家都要学CiteSpace,以及先看清这几点再动手第一次接触CiteSpace的人,多半是在文献计量、科研选题或者毕业论文开题阶段。写综述写到想吐的时候,突然听说这个工具能“一键画出知识图谱”,把几千篇文献的研究热点、演进脉…

2026/10/4 10:18:03 阅读更多 →
GPT Images 2.5 热门玩法大全:万能提示词模板与实战案例

GPT Images 2.5 热门玩法大全:万能提示词模板与实战案例

1. 从标题拆解:GPT Images 2.5 到底能干什么第一次看到“GPT Images 2.5 热门玩法大全”这个标题,我脑子里蹦出来的不是“又一个AI绘画工具”,而是“终于有人把提示词模板和具体场景串起来了”。过去大半年,我一直在用各类图像生成…

2026/10/4 10:17:02 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →