Hive concat,concat_ws 遇到NULL 用法

本文详细探讨了在Hive中使用concat和concat_ws函数时遇到NULL值的情况,分享了如何有效处理这些NULL值以得到期望的拼接结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

select  CONCAT('My', NULL, 'QL') ; -- NULL

select  CONCAT_WS('_','My', NULL, 'QL') ; -- My_QL

select concat(1,2,3) ; -- 123

select concat('1',2,3)  -- 123

select concat_ws('_',1,2,3) ; -- 1_2_3

select concat_ws('_','1',2,3) ; -- 1_2_3

end

Hive中,如果使用concat_ws函数拼接字段时遇到null值,那么结果中会自动跳过null值。这意味着在拼接的过程中,如果有字段值为null,那么该字段将不会在最终结果中显示。因此,如果希望在拼接过程中保留null值,可以使用ifnull函数或者case语句来处理。例如,可以使用ifnull函数将null值替换为一个特定的字符串,或者使用case语句在拼接时选择性地处理null值。 下面是对上述问题中提供的代码进行修改的一个示例: select tbb.user_name, concat_ws(',', sort_array(collect_set(ifnull(tbb.habbit, 'null')))) as habbit from ( select user_name, concat(cast(lpad(order_num, 4, '0') as string), '_', habbits) as habbit, order_num from test_concat order by user_name, order_num ) tbb group by tbb.user_name; 在上述代码中,使用了ifnull函数将null值替换为字符串"null",以确保在拼接过程中保留null值。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [hive concat_ws列转行排序问题](https://blog.csdn.net/qq_37067752/article/details/125238271)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二十六画生的博客

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值