计算一行中填充的列数

问题描述

我在 sql 中有一个这种样式的表:

id 名字 姓氏 年龄
1 约翰 威廉姆斯 25
2 安妮 23

我想统计每行填充的列数,如下图。

id 名字 姓氏 年龄 PopulatedColumns
1 约翰 威廉姆斯 25 4
2 安妮 23 3

有谁知道如何制作一个在 sql 中进行计数的脚本?但是我不想指定列的名称,因为我有一个非常大的表,将所有列的名称都放在一起是不切实际的。有没有办法做到这一点?不加名字?

解决方法

在 MySQL 中,你可以使用算术:

select t.*,( (id is not null) + (firstname is not null) + (lastname is not null) + (age is not null)
       ) as populated_columns
from t;

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...