【问题标题】:How to use IFNULL() in BigQuery - Standard SQL?如何在 BigQuery 中使用 IFNULL() - 标准 SQL?
【发布时间】:2018-09-10 18:59:16
【问题描述】:

我想知道如何正确使用 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"

但是,当我运行查询时,我收到了这个错误:

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

感谢您的帮助。

【问题讨论】:

    标签: google-cloud-platform google-bigquery


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。查询现在运行良好。
    猜你喜欢
    • 2016-11-23
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多