【问题标题】:Different between JSON_EXTRACT and JSON_QUERY in BigQueryBigQuery 中 JSON_EXTRACT 和 JSON_QUERY 的区别
【发布时间】:2020-08-11 06:03:37
【问题描述】:

我想知道 JSON_EXTRACT 和 JSON_QUERY 之间有什么区别。 在Bigquery document 中,他们两个共享相同的解释和示例。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    JSON_QUERY() 是后来添加的,以符合 ISO/IEC TR 19075-6:2017 中出现的 JSON 路径的 SQL 标准 2016 版本。

    JSON_EXTRACT 和 JSON_QUERY 的区别在于如何处理带有点的字段名称,请参见下面的示例

    WITH data AS (SELECT """
    {
      "a.x" : { "b" : "c" }
    }
    """ json)
    SELECT JSON_QUERY(json, '$."a.x"'), JSON_EXTRACT(json, "$['a.x']")
    FROM data;
    

    输出:

    +-----------+-----------+
    |    f0_    |    f1_    |
    +-----------+-----------+
    | {"b":"c"} | {"b":"c"} |
    +-----------+-----------+
    

    【讨论】:

    • 这是因为JSON_VALUE 等价于JSON_EXTRACT_SCALARJSON_QUERY 等价于JSON_EXTRACT。因此,如果您比较相关的配对结果将是相同的。我觉得问题实际上是关于这两对之间有什么区别 - JSON_VALUEJSON_QUERYJSON_EXTRACT_SCALARJSON_EXTRACT?如果这两个新功能与早已存在的功能完全相同,为什么还要引入它们?
    • 你很了解我 :) 这正是我的问题,如果这两个新功能与早已存在的功能完全相同,为什么还要引入它们?
    • 糟糕...我误读了这个问题。更新了我的答案(答案中的内容也应该在公共文档中,我会研究它应该如何更新)
    猜你喜欢
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    相关资源
    最近更新 更多