问题描述
这是示例数据,并带有实际结果和所需结果的预先查询。
WITH
dataset AS (
SELECT
ARRAY[
CAST(ROW('Sally','engineering') AS ROW(name VARCHAR,department VARCHAR)),CAST(ROW('John','finance') AS ROW(name VARCHAR,department VARCHAR))
] AS users
)
select t.*
from dataset
cross join unnest(users) as t
所需的输出: 1列struct类型和2行。
如何预先获得所需的结果?有可能吗?
预先感谢
解决方法
您正在观察的行为是SQL标准行为。
您可以通过以下方式获得所需的输出
SELECT ROW(t.name,t. department)
或者通过防止unnest
用transform()
“拆包”行:
CROSS JOIN UNNEST(transform(users,u -> ROW(u)) as t