2016-12-30 4 views
1

Предполагая исходную таблицу со структурой:непустой строкой в ​​улей массиве

personid INT, 
name STRING, 
mobilephone STRING, 
homephone STRING 

и целевая структура таблицы:

personid INT, 
telephone ARRAY<STRING> 

Для вставки в мишень из источника, я сделал

select 
personid, 
array(mobilephone, homephone) 
from source_table 

12, ["+1958523366","+1258523366"] 
13, ["+1958523366",""] 

Вторая строка в результате показывает пустую строку, потому что homephone имеет значение null в исходной таблице. Как вернуть что-то вроде этого, вместо:

12, ["+1958523366","+1258523366"] 
13, ["+1958523366"] 

т.е. обратный элемент в массиве, только если не нулевой

ответ

0
select 
personid, 
split(concat_ws(',',mobilephone,homephone),',') 
from source_table