簡體   English   中英

在 HIVE 中連接和轉換

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

如果某些列值為NULLconcat_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM