一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第4天,点击查看活动详情。
本文继续来介绍hive中的字符串函数,上文介绍了字符串的连接、反转和长度获取,本文介绍特殊的字符串连接和字符串截取功能的函数,废话不多说,这就开始吧。首先来介绍的就是特殊的字符串连接,序号都是延续着上一篇的,方便大家阅读。
4、concat_ws 带间隔符字符串连接函数 作用:获得有统一分隔符的字符串连接结果
常见使用方法:concat_ws(string SEP, string A, string B…)
具体功能描述:上面介绍过在hive中也有将多个字符串连接在一起的方法,那就是concat,是通过输入多个字符串类型的参数,然后返回其按顺序连接后的结果,那么concat_ws和concat不同的地方就是在第一个字符串内可以输入想要的分隔符,比如逗号,就可以在最后连接这些字符串后,在每个字符串之间插入这个分隔符号了,注意这里不支持输入多个分隔符字符串,输入多个,也只会按照第一个作为分隔符来处理。该函数的返回结果也是string ,SEP 表示各个字符串间的分隔符。
select concat_ws( ',' , 'abc' , 'def' , 'gh' );
>> abc,def,gh
select concat_ws( ' ' , '张三' , '里斯' , '王五' );
>> 张三 里斯 王五
select concat_ws( ' ' , ',', '张三' , '里斯' , '王五' ); -- 重点看下这个处理结果,此处空格是分隔符
>> , 张三 里斯 王五
5、substr | substring 字符串截取函数 作用:截取任意长度字符串
常见使用方法:substr(string A, int start), substr(string A, int start, int len)
具体功能描述:返回结果类型为string ,返回字符串 A 从 start 位置到结尾的字符串。
select substr( '张三李四王五' , 3 );
>> 李四王五
select substr( '张三李四' , 3 , 2 ); -- 返回字符串 A 从 start 位置开始,长度为 len 的字符串。
>> 李四
select substring( '张三李四王五' , - 2 , 2 ); -- 倒数第二个字符,读取 2 个长度的字符串
>> 王五