Hive 合并两列,其中一列有空间
我有一个表:customer,有三列。我想选择第一个NOTNULL列 选择ID合并(列A、列B) 来自客户 预期结果应为:101 AABB 实际结果为101空白 柱A可能有空间,我修剪柱 从customer中选择ID coalesce(修剪(columnA),ColumnB) 我得到了同样的结果:101个空白 如何获得结果:101 AABB?Hive 合并两列,其中一列有空间,hive,conditional,case,coalesce,Hive,Conditional,Case,Coalesce,我有一个表:customer,有三列。我想选择第一个NOTNULL列 选择ID合并(列A、列B) 来自客户 预期结果应为:101 AABB 实际结果为101空白 柱A可能有空间,我修剪柱 从customer中选择ID coalesce(修剪(columnA),ColumnB) 我得到了同样的结果:101个空白 如何获得结果:101 AABB? 列A可能有空格、空值和实际值使用CONCATNULL与空格不同。COALESCE将返回第一个非NULL值,因此您将获得空格 select ID,CONCA
列A可能有空格、空值和实际值使用
CONCAT
NULL
与空格不同。COALESCE
将返回第一个非NULL值,因此您将获得空格
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
嗨,VK_217,如果我们只在ColumnA中有空间,它就可以工作。columnA中有空值、空格和实际值。如果columnA中有空值和空格,则选择ColumnB,否则选择columnA@Anson使用case语句确定值,然后决定选择columna或columnbHi VK_217,您是否可以编辑语句以选择ID,当columna为null或trim(columna)=“”时为case,然后选择ColumnB else columna END from customer,我会接受你的回答