在记录重复字段 BigQuery 中用数组替换空值

问题描述 投票:0回答:1

我有一个 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 类型的值上的字段值”...... 我想保持架构和结构不变,这样就不会取消嵌套。这将在稍后进行,但我需要首先准备表格来替换那些空值。

有办法做到吗?

arrays struct google-bigquery
1个回答
0
投票

此查询使用 子查询

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
© www.soinside.com 2019 - 2024. All rights reserved.