如何在Snowflake SQL中检查表中某列是否全为NULL值?
如何确认表中某一列所有行均为NULL值
你使用的语句:
SELECT * FROM yourTableName WHERE yourSpecificColumnName IS NULL
只能返回该列值为NULL的行,但无法验证整列所有行是否都为NULL。这里提供几种直接的验证方法:
方法1:统计非NULL值的行数
通过查询该列中非NULL值的数量,若结果为0则说明整列都是NULL:
SELECT COUNT(*) AS non_null_count FROM yourTableName WHERE yourSpecificColumnName IS NOT NULL;
方法2:直接返回状态判断
用CASE语句结合NOT EXISTS,直接给出明确的判断结果:
SELECT CASE WHEN NOT EXISTS (SELECT 1 FROM yourTableName WHERE yourSpecificColumnName IS NOT NULL) THEN '整列所有行均为NULL' ELSE '该列存在非NULL值' END AS column_status;
特殊情况处理:空表
如果目标表可能没有任何数据(空表),上面的方法会误判为“整列都是NULL”,可以加上表行数判断:
SELECT CASE WHEN (SELECT COUNT(*) FROM yourTableName) = 0 THEN '表为空,无数据可判断' WHEN NOT EXISTS (SELECT 1 FROM yourTableName WHERE yourSpecificColumnName IS NOT NULL) THEN '整列所有行均为NULL' ELSE '该列存在非NULL值' END AS column_status;
内容的提问来源于stack exchange,提问作者JakeLong
相关产品推荐
相关产品推荐

