在Bigquery中,可以通过STRUCT类型来实现数组的嵌套。以下是一个示例代码:
CREATE TABLE example_table(
id INT64,
name STRING,
contacts ARRAY
INSERT INTO example_table (id, name, contacts) VALUES (1, 'Alice', [(1234567890, 'alice@example.com'), (2345678901, 'alice2@example.com')]), (2, 'Bob', [(3456789012, 'bob@example.com'), (4567890123, 'bob2@example.com')]);
在上述示例中,使用STRUCT类型声明了一个contacts数组,包含phone_number和email两个字段。每个contact又是一个STRUCT类型,并包含两个字段。使用ARRAY声明该列为数组类型。
此时,查询example_table的结果如下:
SELECT * FROM example_table;
结果如下:
id | name | contacts |
---|---|---|
1 | Alice | [{'phone_number': '1234567890', 'email': 'alice@example.com'}, {'phone_number': '2345678901', 'email': 'alice2@example.com'}] |
2 | Bob | [{'phone_number': '3456789012', 'email': 'bob@example.com'}, {'phone_number': '4567890123', 'email': 'bob2@example.com'}] |
可以看到,contacts列中包含了两个联系人信息,每个联系人信息都是一个具有phone_number和email属性的STRUCT类型。