我想在列之间进行计算,其中包含空值
x1 x2
9 0.0
5 1.2
12 null
10 null
如果计算
x1 + (x1*x2)
制作,结果
9, 6, null, null
您能否建议,如何处理空值,结果将是
9, 6, 12, 10
我正在尝试ifelse,如果value为null,则使用1
IF(x1 = null, 0, x1)
但结果仍为空值。
谢谢!
答案 0 :(得分:12)
使用IFNULL(expr, 0)
- 如果expr
为空,则会返回0。
一般情况下,不要something=null
执行something IS null
。
答案 1 :(得分:1)
在Google Big Query中使用ifnull功能。(提供链接)
IFNULL(x1, 0)*IFNULL(x2,0) as new_col
仅供参考:谷歌云数据准备中有一个ISNULL(column_name)
就像在MySQL中一样,会返回一个布尔值,即True或False,具体取决于列是否为空。
答案 2 :(得分:0)
另一种可能的解决方案是使用 COALESCE(arg1, arg2, ...,argN) 返回第一个非空参数。
例如:
如果 x1(或 x2)为空,COALESCE(x1 , 0) * COALESCE(x2, 0)
返回 0。