【发布时间】:2021-11-01 09:01:04
【问题描述】:
规格如下。
- 字段值为json数组。
- 每个 json 元素都有一个动态键。
- 提取数组的所有值
[示例]
WITH TempTable AS
(SELECT '1' as id, '[{"1_03":8},{"1_04":8}]' as target UNION ALL
SELECT '2', '[{"1_19":8},{"1_08":9}]' UNION ALL
SELECT '3', '[{"1_23":4},{"1_24":6}]'
)
SELECT
id,
json_query_array(target,'$'),
REGEXP_EXTRACT_ALL(target, '"(.*?)":') as key,
REGEXP_EXTRACT_ALL(target, ':([0-9]+)') as val
FROM TempTable
对于带有json数组的字段(在示例中),我只能用正则表达式提取值。
但是,有没有办法应用json路径方法?
【问题讨论】:
-
只提取一个值是什么意思?在您的示例中,您似乎正在提取数组的所有值。
-
@DanielZagales 你说的是对的。文本内容已明确修改。 (提取数组的所有值)
标签: arrays json google-bigquery