Hive concat函數鏈接後結果爲null

Hive concat函數鏈接後結果爲null

concat函數是用來鏈接字符串的

使用示例:函數

select concat('Hello','World','Java');測試

運行結果:spa

 

最近咱們在作需求的時候使用concat去拼接地址信息,腳本以下:(ta是我存放地址信息的表別名,地址分爲三段存儲)blog

concat(trim(ta.houseaddress),' ',trim((ta.houseaddress2),' ',trim(ta.houseaddress3))字符串

通常來講,咱們會以爲這個沒問題吧,意思就是去掉每部分地址的先後空格,而後每段之間使用空格拼接。select

可是咱們在測試的時候就發現有問題耶,有不少地址信息不爲空的數據都變爲空了....im

 

開始找緣由:

發現是concat函數在鏈接null值的時候會將整個結果都會置爲null數據

例如: 腳本

select concat('Hello','World','Java',null);img

執行結果:

 

修正以後的地址鏈接信息腳本:

concat(trim(nvl(ta.houseaddress,'')),' ',trim(nvl(ta.houseaddress2,'')),' ',trim(nvl(ta.houseaddress3,'')))

相關文章
相關標籤/搜索