MySQL排坑6 统计空值

需求:验证某一字段的值是否存在首尾带有空格的情况

-- 测试数据:表名cc,三列a b c,b列有两个值前后有空格,有一个空值,有一个正常
insert into cc values (1,'bb','cc'),(2,'  bb','cc'),(3,null,'cc'),(4,' bb  ','cc');

首先看一下count函数的情况

select count(a),count(b) from cc;

发现结果分别是4,3,说明count只统计非空的值。这个问题不同数据库以及hive中可能都不一样,建议先试一下。

-- 如果值两端无空格,返回null,有空格返回1,统计的是有空格的值的个数
SELECT count(if(trim(b)=b,null,1)) as b1 from cc;

结果是3,说明把null也算进去了。

-- 只统计非空的
SELECT count(if(trim(b)=b,null,1)) as b1 from cc where b is not null;

结果是2。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值