在BigQuery中获取STRUCT字段的字段名称的解决方法如下所示:
假设我们有一个包含STRUCT字段的表格,表格名为mytable
,字段名为mystruct
,包含两个子字段field1
和field2
。
-- 创建一个包含STRUCT字段的示例表格
CREATE TABLE mytable (
mystruct STRUCT<
field1 STRING,
field2 INT64
>
);
-- 插入示例数据
INSERT INTO mytable (mystruct)
VALUES (STRUCT('value1', 1));
-- 查询STRUCT字段的字段名称
SELECT
column_name,
field_name
FROM
mytable,
UNNEST(GENERATE_SCHEMA_ARRAY(mystruct)) AS schema
在上面的示例中,我们使用GENERATE_SCHEMA_ARRAY
函数将STRUCT字段转换为数组,然后通过UNNEST
操作展开数组,并使用column_name
和field_name
来获取字段名称。执行以上代码后,将返回以下结果:
+-------------+------------+
| column_name | field_name |
+-------------+------------+
| mystruct | field1 |
| mystruct | field2 |
+-------------+------------+
这样我们就可以获取到STRUCT字段的字段名称了。