【问题标题】:BigQuery - Nested and Repeated not allowing to insert Null valuesBigQuery - 嵌套和重复不允许插入 Null 值
【发布时间】:2022-07-19 21:36:05
【问题描述】:

我有一个包含多个嵌套和重复字段的字段。它不允许我为任何具有 RECORD 数据类型的子字段插入空值或空数组。

这是一个限制还是有任何解决方法?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    只是我一直在寻找的问题..没有答案

    幸运的是,我找到了解决相同问题的 question - 仅在 update statement

    那里的解决方案有效,但它是一个肮脏的黑客 - 将 null 放在一个表达式中,该表达式使用目标类型来寻址一个字段

    IF(false, struct_to_set_null, NULL)
    

    struct_to_set_null 是表中的实际字段名称

    不幸的是,它不适用于我的场景,因为我使用的 inline select statement 与我的表不在同一范围内

    相反,我只是使用了cast 函数(感谢answer)。缺点是我最终得到了非常复杂的表达式,例如:

    # this represents a repeated record with a single field of type string
    cast(null as Array<struct<STRING>>)
    
    # same thing but with multiple values
    cast(null as Array<struct<STRING, INTEGER>>)
    

    从好的方面来说 - 它总是有效的 + 它看起来更清晰和直接(至少对我来说)

    希望这篇文章能帮助到那里的人

    【讨论】:

      猜你喜欢
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 2018-01-14
      相关资源
      最近更新 更多