[英]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.