检查数组是否包含任何非空值的最直接方法

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

目前正在做这个:

cardinality(filter(my_array, x -> x is not null)) != 0

有更直接的方法吗?

sql presto trino
2个回答
0
投票

array_exists(my_array, x -> x is not null)
应该就是您要找的。


0
投票

Python 复制代码

any(对于 my_array 中的 x,x 不是 None)

JavaScript 复制代码

myArray.some(x => x !== null);

Java(流) 复制代码

boolean hasNonNull = Arrays.stream(myArray).anyMatch(Objects::nonNull);

SQL(例如 Postgres) 如果 my_array 是数据库列: 复制代码

选择存在( 选择1 FROM unnest(my_array) AS x 其中 x 不为空 );

代码说明 您的代码:

基数(filter(my_array, x -> x 不为空)) != 0 这使用过滤器检查 my_array 中非空元素的计数,并将其与 0 进行比较。虽然它有效,但一旦发现非空元素就停止处理会更有效,这是上面的方法实现的。

© www.soinside.com 2019 - 2024. All rights reserved.