【发布时间】:2020-08-11 06:03:37
【问题描述】:
我想知道 JSON_EXTRACT 和 JSON_QUERY 之间有什么区别。 在Bigquery document 中,他们两个共享相同的解释和示例。
【问题讨论】:
标签: google-bigquery
我想知道 JSON_EXTRACT 和 JSON_QUERY 之间有什么区别。 在Bigquery document 中,他们两个共享相同的解释和示例。
【问题讨论】:
标签: google-bigquery
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_SCALAR 而JSON_QUERY 等价于JSON_EXTRACT。因此,如果您比较相关的配对结果将是相同的。我觉得问题实际上是关于这两对之间有什么区别 - JSON_VALUE、JSON_QUERY 和 JSON_EXTRACT_SCALAR、JSON_EXTRACT?如果这两个新功能与早已存在的功能完全相同,为什么还要引入它们?