我目前正在检查 Bigquery,我想知道是否可以将新数据添加到嵌套表中。
例如,如果我有一张这样的表:
[
{
"name": "name",
"type": "STRING"
},
{
"name": "phone",
"type": "RECORD",
"mode": "REPEATED",
"fields": [
{
"name": "number",
"type": "STRING"
},
{
"name": "type",
"type": "STRING"
}
]
}
]
然后我插入联系人 John Doe 的电话号码。
INSERT into socialdata.phones_examples (name, phone) VALUES("Jonh Doe", [("555555", "Home")]);
是否可以选择稍后向联系人添加另一个号码?要得到这样的东西:
我知道我可以更新整个字段,但我想知道是否有办法将新值附加到嵌套表中。
最佳答案
当您将数据插入 BigQuery 时,粒度是行级别,而不是行中包含的数组元素。您可能想要使用这样的查询,在其中更新相关行并附加到数组:
UPDATE socialdata.phones_examples
SET phone = ARRAY_CONCAT(phone, [("555555", "Home")])
WHERE name = "Jonh Doe"
关于sql - 大查询 : Append to a nested record,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52729455/