可以使用FLATTEN
函数来扁平化JSON文档并展平所有的子键。然后可以使用JSON_EXTRACT
函数来提取所需的键值。
例如,假设有以下JSON文档:
{
"id": 1,
"info": {
"name": "John",
"age": 30,
"address": {
"city": "New York",
"state": "NY",
"country": "USA"
}
}
}
如果想要提取name
和city
键的值,那么可以使用以下查询:
SELECT
JSON_EXTRACT(json, '$.info.name') AS name,
JSON_EXTRACT(json, '$.info.address.city') AS city
FROM
mytable,
UNNEST([json]) AS json
在此查询中,首先使用UNNEST
函数将JSON文档展开为一行,然后再使用JSON_EXTRACT
函数提取所需的键值。