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

时间:2018-04-01 08:50:34

标签: google-cloud-platform google-bigquery

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

enter image description here

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

enter image description here

这是我的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"

但是,当我运行查询时,我收到此错误:

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

检查doc。我认为你需要将int_value转换为字符串:

IFNULL(value.string_value, CAST(value.int_value AS STRING)) AS singleValueColumn