【发布时间】:2017-10-26 18:55:43
【问题描述】:
如何在 Presto 中检查地图是否没有键?如果我有办法检查数组是否为空,我可以使用map_keys 函数来确定映射是否为空。
【问题讨论】:
如何在 Presto 中检查地图是否没有键?如果我有办法检查数组是否为空,我可以使用map_keys 函数来确定映射是否为空。
【问题讨论】:
要检查数组是否为空,只需将其与= array[] 进行比较。
示例:
presto> select (map_keys(map(array[], array[])) = array[]) as is_empty;
is_empty
----------
true
(1 row)
同样,要检查地图是否为空,只需将其与= map() 进行比较即可。
示例:
presto> select (map(array[], array[]) = map()) as is_empty;
is_empty
----------
true
(1 row)
【讨论】:
'=' cannot be applied to array(row(value integer)), array(row(VALUE integer)),你知道可能出了什么问题吗?
select array[cast(row(1) as row(value integer))] = array[];,它正确返回了false(在Presto中master)
您可以使用cardinality函数:https://prestodb.io/docs/current/functions/array.html#cardinality
select cardinality(array[]) = 0;
_col0
-------
true
(1 row)
【讨论】: