Sql 检查Presto中的映射或数组是否为空?

Sql 检查Presto中的映射或数组是否为空?,sql,presto,Sql,Presto,如何检查地图在Presto中是否没有键?如果我有办法检查数组是否为空,我可以使用map\u键功能来确定贴图是否为空。要检查数组是否为空,只需将其与=array[]进行比较即可。 例如: 同样,要检查映射是否为空,只需将其与=map()进行比较。 例如: 您可以使用基数功能: 我得到了“=”不能应用于数组(行(值整数)),数组(行(值整数)),你知道可能有什么问题吗?@LeoJiang我怎么复制?我尝试了选择数组[cast(行(1)作为行(值整数))]=array[]并且它正确地返回了false(

如何检查地图在Presto中是否没有键?如果我有办法检查数组是否为空,我可以使用
map\u键
功能来确定贴图是否为空。

要检查数组是否为空,只需将其与
=array[]
进行比较即可。 例如:

同样,要检查映射是否为空,只需将其与
=map()
进行比较。 例如:


您可以使用
基数
功能:


我得到了
“=”不能应用于数组(行(值整数)),数组(行(值整数))
,你知道可能有什么问题吗?@LeoJiang我怎么复制?我尝试了
选择数组[cast(行(1)作为行(值整数))]=array[]并且它正确地返回了
false
(在Presto
master
)我们可能使用了一个奇怪的Presto版本,我找到了另一个解决方案,将映射转换为JSON,然后将其转换为字符串。谢谢
presto> select (map_keys(map(array[], array[])) = array[]) as is_empty;

 is_empty
----------
 true
(1 row)
presto> select (map(array[], array[]) = map()) as is_empty;

 is_empty
----------
 true
(1 row)
select cardinality(array[]) = 0;
 _col0
-------
 true
(1 row)