Hive concat函數連接后結果為null


Hive concat函數連接后結果為null

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

使用示例:

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

運行結果:

 

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

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

一般來說,我們會覺得這個沒問題吧,意思就是去掉每部分地址的前后空格,然后每段之間使用空格拼接。

但是我們在測試的時候就發現有問題耶,有很多地址信息不為空的數據都變為空了....

 

開始找原因:

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

例如: 

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

執行結果:

 

修正之后的地址連接信息腳本:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM