合并两列,其中一列有空间

fquxozlt  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(493)



我有一个表:customer,有三列。我想选择第一个非空列。
从customer中选择id coalesce(columna,columnb)。
预期结果应为:101 aabb。
实际结果为101空白。
柱子可能有空间,我修剪柱子。
从customer中选择id coalesce(trim(columna),columnb)。
我得到同样的结果:101空白。
如何得到结果:101 aabb?列可以有空格、空值和实际值

uoifb46i

uoifb46i1#

使用 CONCAT . NULL 和空间不一样。 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

相关问题