BigQuery中WHERE子句使用IS NULL无法查询到NULL数据,请求帮助
解决BigQuery中
usertype IS NULL查不到数据的问题 问题原因
你遇到的情况核心原因是:数据集中的“NULL记录”并非SQL标准的NULL值,而是**空字符串("")**或字符串形式的"NULL"。BigQuery里IS NULL仅匹配真正的SQL NULL,不会识别空字符串或字符串"NULL"为NULL值。
验证真实数据情况
先执行以下查询确认usertype列的实际值分布:
SELECT usertype, COUNT(*) AS record_count FROM `bigquery-public-data.new_york_citibike.citibike_trips` GROUP BY usertype ORDER BY record_count DESC;
该查询会列出usertype所有不同取值及对应数量,你能直接看到所谓的“NULL记录”真实是什么值。
针对性解决方案
根据验证结果选择对应过滤条件:
- 若缺失值是空字符串,使用:
SELECT * FROM `bigquery-public-data.new_york_citibike.citibike_trips` WHERE usertype = '';
- 若缺失值是字符串形式的"NULL",使用:
SELECT * FROM `bigquery-public-data.new_york_citibike.citibike_trips` WHERE usertype = 'NULL';
- 同时覆盖SQL NULL、空字符串、字符串"NULL"的场景:
SELECT * FROM `bigquery-public-data.new_york_citibike.citibike_trips` WHERE usertype IS NULL OR usertype = '' OR usertype = 'NULL';
补充说明
BigQuery列的NULLABLE模式仅表示该列允许存储SQL NULL,但实际业务数据中,缺失值常被处理为空字符串或其他占位符,这是数据处理中常见的情况。
内容的提问来源于stack exchange,提问作者Z_N
相关产品推荐
相关产品推荐

