2017-05-26 252 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並將其轉換爲字符串來找到另一個解決方案。謝謝。 –