BigQuery - NULL值

时间:2015-10-20 06:13:39

标签: null google-bigquery

我想在列之间进行计算,其中包含空值

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)

但结果仍为空值。

谢谢!

3 个答案:

答案 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 
  • 这将插入0代替x1和x2中的任何空值。

仅供参考:谷歌云数据准备中有一个ISNULL(column_name)就像在MySQL中一样,会返回一个布尔值,即True或False,具体取决于列是否为空。

答案 2 :(得分:0)

另一种可能的解决方案是使用 COALESCE(arg1, arg2, ...,argN) 返回第一个非空参数。

例如:

如果 x1(或 x2)为空,

COALESCE(x1 , 0) * COALESCE(x2, 0) 返回 0。