在 presto 中从数组中删除空值

问题描述 投票:0回答:2

我正在从 presto 中的 json 列中提取数据,并在像这样的数组中获取输出 [AL,null,NEW]。问题是我需要删除 null,因为该数组必须映射到另一个数组。我尝试过有几个选项,但没有运气。我如何删除 null 并仅获取 [AL,NEW] 而不取消嵌套?

presto trino
2个回答
13
投票

您可以使用

filter()
为此:

SELEtrino> SELECT filter(ARRAY['AL',null,'NEW'], e -> e IS NOT NULL);
   _col0
-----------
 [AL, NEW]
(1 row)

0
投票

如果

array_agg
是创建一个包含您想要删除的
NULL
元素的数组,更好的方法可能是 在聚合期间进行过滤:

来自:

SELECT array_agg(name)

致:

SELECT array_agg(name) FILTER (WHERE name IS NOT NULL)
© www.soinside.com 2019 - 2024. All rights reserved.