2017-05-26 250 views

回答

1

要检查数组是空的,只需将它与= 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) 
+0

我得到' '=' 不能被应用到阵列(行(值整数)),阵列(行(VALUE整数) )',你知道什么可能是错的? –

+0

@LeoJiang我该如何重现?我尝试了'select array [cast(row(1)as row(value integer))] = array [];'并且它正确地返回了'false'(在Presto'master'中) –

+0

我们可能会使用怪异版本的Presto ,我通过将地图转换为JSON并将其转换为字符串来找到另一个解决方案。谢谢。 –