首页 > 数据库 > SQL > 正文

SQL统计空值数量怎么写_NULL判断实战技巧解析【技巧】

舞夢輝影
发布: 2025-12-22 19:33:57
原创
449人浏览过
统计空值数量须用 IS NULL 判断,不可用 = NULL;常用 COUNT(*) WHERE column IS NULL;多列空值可用 CASE WHEN 或 PostgreSQL 的 FILTER;NULL 与空字符串 '' 不同,需分别处理。

sql统计空值数量怎么写_null判断实战技巧解析【技巧】

统计空值数量,核心是用 IS NULL 判断,不能用等号(= NULL 无效),也不能直接写 WHERE column = NULL —— 这样查不到任何结果。

用 COUNT + IS NULL 统计单列空值数

最常用、最直观的方式:

SELECT COUNT(*) 
FROM table_name 
WHERE column_name IS NULL;
登录后复制

如果想同时看非空数量,可以一行写出:

SELECT 
  COUNT(*) FILTER (WHERE column_name IS NULL) AS null_count,
  COUNT(*) FILTER (WHERE column_name IS NOT NULL) AS not_null_count
FROM table_name;
登录后复制

(注:FILTER 语法适用于 PostgreSQL;MySQL 和 SQL Server 需换用 CASE)

MySQL / SQL Server 兼容写法(用 CASE)

在不支持 FILTER 的数据库中,统一用 CASE WHEN:

Fireflies.ai
Fireflies.ai

自动化会议记录和笔记工具,可以帮助你的团队记录、转录、搜索和分析语音对话。

Fireflies.ai 160
查看详情 Fireflies.ai
  • 统计某列空值数量:
SELECT 
  COUNT(CASE WHEN column_name IS NULL THEN 1 END) AS null_count
FROM table_name;
登录后复制
  • 一次查多列空值数(实用!):
SELECT 
  COUNT(CASE WHEN col1 IS NULL THEN 1 END) AS col1_nulls,
  COUNT(CASE WHEN col2 IS NULL THEN 1 END) AS col2_nulls,
  COUNT(CASE WHEN col3 IS NULL THEN 1 END) AS col3_nulls
FROM table_name;
登录后复制

注意:NULL 和空字符串 '' 不是一回事

字符串字段中,''(空串)是有效值,不是 NULL。若需同时统计 NULL 和空串:

SELECT COUNT(*) 
FROM table_name 
WHERE column_name IS NULL OR column_name = '';
登录后复制

数字或日期类型不会出现空字符串,但可能有默认值(如 0、'1970-01-01'),这些都不是 NULL,需按业务逻辑单独判断。

快速检查整表各列空值率(进阶技巧)

想一眼看清哪些字段缺失严重?可用动态查询生成语句(以 PostgreSQL 为例):

SELECT 
  'SELECT ' || 
  STRING_AGG(
    'COUNT(CASE WHEN ' || column_name || ' IS NULL THEN 1 END) AS ' || column_name || '_nulls', 
    ', '
  ) || 
  ' FROM ' || table_name || ';' AS sql_to_run
FROM information_schema.columns 
WHERE table_name = 'your_table'
GROUP BY table_name;
登录后复制

执行结果会输出一条含所有列空值统计的 SELECT 语句,复制运行即可。

以上就是SQL统计空值数量怎么写_NULL判断实战技巧解析【技巧】的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号