You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery中将零值转换为Null值时遇问题求助

BigQuery零值转Null报错的解决方法

先排查数据类型问题

如果wind_speed是字符串类型,直接用=0会触发类型不匹配错误。这时候要按字符串形式匹配,或者转成数值类型:

-- 针对字符串类型的wind_speed
SELECT 
  IF(wind_speed = '0' OR wind_speed = '', NULL, CAST(wind_speed AS FLOAT64)) AS cleaned_wind_speed
FROM 
  weather_data
WHERE 
  year = 2023;

换用CASE语句尝试

有时候IF函数的语法细节容易踩坑,CASE语句逻辑更直观,不容易出错:

SELECT 
  CASE 
    WHEN wind_speed = 0 THEN NULL
    ELSE wind_speed 
  END AS cleaned_wind_speed
FROM 
  weather_data
WHERE 
  year = 2023;

要是wind_speed是字符串,把条件改成WHEN wind_speed = '0'就行。

覆盖特殊零值场景

如果数据里有0.0、00这类变种零值,扩展判断条件就能处理:

SELECT 
  CASE 
    WHEN wind_speed IN (0, 0.0, '0', '00') THEN NULL
    ELSE wind_speed 
  END AS cleaned_wind_speed
FROM 
  weather_data
WHERE 
  year = 2023;

先确认数据类型和样本

拿这个查询先看看wind_speed的类型和实际数据,能更快定位问题:

SELECT 
  typeof(wind_speed),
  wind_speed
FROM 
  weather_data
WHERE 
  year = 2023
LIMIT 10;

内容的提问来源于stack exchange,提问作者Ronaria Elisabeth Buaton M004D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 07:22:11