對於你的問題所示的例子 - 我會在下面的模式去
[
{
"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'作爲字段?或者你是否說'元數據'裏面還有其他可能的字段? –
添加電子郵件將無濟於事。元數據中可以有其他字段。 –