UNNEST您可以在 a 的上下文中使用LEFT JOIN:
WITH t(v) AS (VALUES
ARRAY[1,2],
NULL,
ARRAY[3,4],
ARRAY[]
)
SELECT e
FROM t LEFT JOIN UNNEST(t.v) AS u(e) ON true
Run Code Online (Sandbox Code Playgroud)
这是在Trino 319(以前称为 Presto SQL)中添加的
如果您使用的不是最新版本,可以用以下内容替换:
...
FROM t CROSS JOIN UNNEST(if(t.v IS NULL OR cardinality(t.v) = 0, ARRAY[NULL], t.v)) AS u(e)
Run Code Online (Sandbox Code Playgroud)