BigQuery - NULL值

use*_*904 6 null google-bigquery

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

x1     x2
9      0.0
5      1.2
12     null
10     null
Run Code Online (Sandbox Code Playgroud)

如果计算

x1 + (x1*x2)
Run Code Online (Sandbox Code Playgroud)

制作,它的结果

9, 6, null, null
Run Code Online (Sandbox Code Playgroud)

你能不能建议,如何处理空值,结果就是如此

9, 6, 12, 10
Run Code Online (Sandbox Code Playgroud)

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

IF(x1 = null, 0, x1)
Run Code Online (Sandbox Code Playgroud)

但结果仍然是空值.

谢谢!

Fel*_*ffa 14

使用IFNULL(expr, 0)- 如果expr为null,则返回0 .

在一般情况下,而不是做something=nullsomething IS null.

  • 原因是任何涉及null的表达式(“ IS NULL”和“ IFNULL”除外)都将求值为null,即使该表达式类似于“ foo = null”。 (2认同)

gee*_*rsh 6

在 Google Big Query 中使用ifnull函数。(提供链接)

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

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