标签:trim nvl Hive 地址 null concat ta
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,'')))
标签:trim,nvl,Hive,地址,null,concat,ta 来源: https://www.cnblogs.com/DFX339/p/11841126.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。