gpt4 book ai didi

sql - 展平表中可能为 NULL 或 presto 为空的数组

转载 作者:行者123 更新时间:2023-12-03 08:27:07 25 4
gpt4 key购买 nike

我在 sql 查询中使用了下表。

enter image description here

我想把它变成下面的形状

enter image description here

我该怎么做?我使用了 unnest 和 cross join 。由于数组为空,所以我没有获得整个 View 。

最佳答案

您可以在 LEFT JOIN 上下文中使用 UNNEST:

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

这是在 Trino 319 中添加的(formerly known as Presto SQL)

如果您使用的不是最新版本,可以用以下内容替换:

...
FROM t CROSS JOIN UNNEST(if(t.v IS NULL OR cardinality(t.v) = 0, ARRAY[NULL], t.v)) AS u(e)

关于sql - 展平表中可能为 NULL 或 presto 为空的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66316654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com