我想为我的数据库创建嵌套结构数组
类似这样的东西:
array(row(item row(departmentNumber bigint, itemNumber bigint, shelfCapacity row(qty double, precision bigint))
location row(zone varchar, aisle bigint)))
下面我遇到的错误:
但这给了我这样的错误:
Unknown type: ROW(departmentNumber bigint, itemNumber bigint,shelfCapacity ROW )
我创建了一个示例SQL
WITH dataset AS (
SELECT ARRAY[
CAST(ROW('departmentNumber', 'itemNumber', CAST(ROW('qty', 'precision') AS ROW(qty double, precision bigint))) AS ROW(departmentNumber bigint, itemNumber bigint,shelfCapacity ROW ))
] AS items
)
SELECT * FROM dataset
答案 0 :(得分:0)
不能100%确定为什么在语法中会重复使用“ departmentNumber”之类的标识符,但是在BigQuery中,ROW
被称为STRUCT
,您的查询可能会被重写为:
WITH dataset AS (
SELECT ARRAY[
STRUCT<departmentNumber int64, itemNumber int64,shelfCapacity STRUCT<qty float64, precision int64>> (
1, 1, STRUCT(2.1, 100)),
(2, 2, STRUCT(3.1, 200))
] AS items
)
SELECT * FROM dataset