在BigQuery中更新嵌套字段(如收入字段)涉及使用 UPDATE
语句与 JSON_EXTRACT_SCALAR
和 JSON_SET
函数
假设您有一个名为 my_dataset.my_table
的表,其中包含以下结构:
{
"id": 1,
"info": {
"income": 100
}
}
现在,您想将 info.income
字段的值乘以5。以下是实现这一目标的SQL查询:
UPDATE my_dataset.my_table
SET info = JSON_SET(
JSON_EXTRACT_SCALAR(info, '$'),
'$.income',
CAST(JSON_EXTRACT_SCALAR(info, '$.income') * 5 AS STRING)
)
WHERE id = 1;
这个查询做了以下操作:
JSON_EXTRACT_SCALAR
函数提取 info
字段的内容。JSON_SET
函数更新 info.income
字段的值,将其乘以5。CAST
函数将结果转换为字符串,因为JSON字段的值必须是字符串。请注意,这个查询仅更新 id = 1
的记录。您可以根据需要修改 WHERE
子句以更新其他记录。
如果您要更新表中的所有记录,可以去掉 WHERE
孥句:
UPDATE my_dataset.my_table
SET info = JSON_SET(
JSON_EXTRACT_SCariant(info, '$'),
'$.income',
CAST(JSON_EXTRACT_SCALAR(info, '$.income') * 5 AS STRING)
);
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云