检查Presto中的地图或数组是否为空?

Leo*_*ang 6 sql presto

如何检查地图在Presto中是否没有按键?如果我有办法检查数组是否为空,我可以使用该map_keys函数来确定地图是否为空.

小智 17

您可以使用以下cardinality功能:https://prestodb.io/docs/current/functions/array.html#cardinality

select cardinality(array[]) = 0;
 _col0
-------
 true
(1 row)
Run Code Online (Sandbox Code Playgroud)


Pio*_*sen 6

要检查数组是否为空,只需将其与= array[]. 例子:

presto> select (map_keys(map(array[], array[])) = array[]) as is_empty;

 is_empty
----------
 true
(1 row)
Run Code Online (Sandbox Code Playgroud)

同样,要检查地图是否为空,只需将其与 进行比较即可= map()。例子:

presto> select (map(array[], array[]) = map()) as is_empty;

 is_empty
----------
 true
(1 row)
Run Code Online (Sandbox Code Playgroud)