[英]concat and cast in HIVE
我有许多记录,其中包括几列带前导零的列。 我想删除前导零并用连字符将 3 列合并为一列。 我正在使用 HIVE。
Column1 column2 column3
0123 12342567 001
desired output
123-12342567-1
要删除前导零,您可以使用 regexp_replace(col, '^0+', ''),然后使用 concat_ws() 连接:
与 mytable 为( select
'0123' 列 1,'12342567' 列 2,'001' 列 3)
select concat_ws('-',
regexp_replace(Column1,'^0+',''),
regexp_replace(Column2,'^0+',''),
regexp_replace(Column3,'^0+','')
)
from mytable;
结果:
123-12342567-1
如果某些列值为NULL
, concat_ws
将与分隔符一起跳过它。 例如,如果 column2 是 NULL,则结果将为123-1
如果要将NULL
值转换为其他值,请使用NVL(col, 'value if NULL')
function,例如regexp_replace(NVL(column2, ''),'^0+','')
将返回空字符串NULL 和 concat_ws 将返回123--1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.