BigQuery - NULL 值

BigQuery - NULL values

我想在包含空值的列之间进行计算

x1     x2
9      0.0
5      1.2
12     null
10     null

如果计算

x1 + (x1*x2)

生成,结果是

9, 6, null, null

请问如何处理空值,结果会是

9, 6, 12, 10

我正在尝试 ifelse,如果值为 null,则使用 1

IF(x1 = null, 0, x1)

但结果仍然是空值。

谢谢!

使用 IFNULL(expr, 0) - 如果 expr 为空,这将返回 0。

一般来说,不要做 something=null,而是做 something IS null

在 Google 大查询中使用 ifnull 函数。(提供Link)

IFNULL(x1, 0)*IFNULL(x2,0) as new_col 
  • 这将插入 0 来代替 x1 和 x2 中的任何空值。

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

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

例如:

COALESCE(x1 , 0) * COALESCE(x2, 0) returns 如果 x1(或 x2)为空则为 0。