合并两列,一列有空格

时间:2018-06-13 19:00:22

标签: hive conditional case coalesce

enter image description here

enter image description here

我有一张桌子:客户并有三列。我想选择第一个非空列。

选择ID合并(columnA,ColumnB) 来自客户。

期望结果应为:101 AABB。

实际结果为101空白。

columnA可能有空格,我修剪了列。

从客户中选择ID coalesce(trim(columnA),ColumnB)。

我得到了相同的结果:101空白。

我怎样才能得到结果:101 AABB? ColumnA可以包含空格,空值和实际值

1 个答案:

答案 0 :(得分:0)

使用CONCATNULL与空格不同。COALESCE将返回第一个非空值,因此您将获得空间。

select ID,CONCAT(trim(ColumnA),trim(ColumnB)) from customer

修改

select ID, 
CASE WHEN ColumnA is null OR trim(ColumnA)=' ' then ColumnB else ColumnA END 
from customer