我有一个 BQ 表,其中包含 RECORD 类型和 REPEATED 模式(labels.key 和 labels.value)的列“labels”,并且希望将 labels.value 的空值替换为从另一个查询中获取的字符串数组,例如喜欢:
SELECT CASE WHEN label.values IS NULL THEN ARRAY[STRUCT(SELECT distinct string_values FROM other_table)] ELSE label.values END
这可能是错误的,原因有很多,但返回的主要错误是我“无法访问 ARRAY 类型的值上的字段值
有办法做到吗?
此查询使用 子查询 从
string_values
获取不同的 other_table
,然后有条件地替换 labels.value
中的空值。
SELECT
CASE
WHEN labels.value IS NULL THEN (
SELECT ARRAY_AGG(DISTINCT string_values) FROM other_table
)
ELSE labels.value
END AS new_values
FROM
your_table