对于你的问题所示的例子 - 我会在下面的模式去
[
{
"name": "id",
"type": "INTEGER",
"mode": "NULLABLE"
},
{
"name": "object",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "metadata",
"type": "STRING",
"mode": "NULLABLE"
}
]
及以下
#standardSQL
WITH `yourProject.yourDataset.yourTable` AS (
SELECT 1 AS id, 'user' AS object, '{"name": "BI Architect", "email": "[email protected]"}' AS metadata UNION ALL
SELECT 2, 'expert', '{"name": "Elliott Brossard"}'
)
SELECT
id,
object,
JSON_EXTRACT_SCALAR(metadata, '$.name') AS name,
JSON_EXTRACT_SCALAR(metadata, '$.email') AS email
FROM `yourProject.yourDataset.yourTable`
ORDER BY id
导致下面的输出
的我会怎样处理它的一个示例
id object name email
1 user BI Architect [email protected]
2 expert Elliott Brossard null
@ElliottBrossard你能帮忙吗? –
即使第一行不存在,您是否可以在'metadata'中仅包含'email'作为字段?或者你是否说'元数据'里面还有其他可能的字段? –
添加电子邮件将无济于事。元数据中可以有其他字段。 –