如何在 BigQuery 中使用 IFNULL() - 标准 SQL?

Mil*_*ton 4 google-bigquery google-cloud-platform

我想知道如何正确使用 IFNULL() BigQuery Standard SQL 函数。这是我目前的数据结构。名为“key”和“stringColumn”的列存储字符串。同时,名为“integerColumn”的列存储整数:

在此处输入图片说明

我想创建一个名为“singleValueColumn”的新列,它采用非空的“stringColumn”或“integerColumn”的值:

在此处输入图片说明

这是我的 BigQuery 标准 SQL 查询:

SELECT  key,
        value.string_value as stringColumn,
        value.int_value as integerColumn,
        IFNULL(value.string_value, value.int_value) as singleValueColumn

FROM `com_skytracking_ANDROID.app_events_*`, 
      UNNEST(event_dim) as event,
      UNNEST(event.params) as event_param

WHERE event.name = "order_event"
Run Code Online (Sandbox Code Playgroud)

但是,当我运行查询时,出现此错误:

Error: No matching signature for function IFNULL for argument types: STRING, INT64. Supported signature: IFNULL(ANY, ANY) at [4:9]
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

Xia*_*Lin 12

检查此文档。我认为您需要将 int_value 转换为字符串:

IFNULL(value.string_value, CAST(value.int_value AS STRING)) AS singleValueColumn
Run Code Online (Sandbox Code Playgroud)