hive 字符串函数

hive outline

链接

hive 字符串函数

  • 字符串长度函数:length

语法:length(str | binary)

select length('ab');
-- 输出 2

select length('老王');
-- 输出 2
  • 字符串反转函数:reverse

select reverse('abc');
-- 输出 cba
  • 字符串连接函数:concat

语法:concat(str1, str2, … strN)

select concat('hello', '-','word');

-- 输出 hello-word
select concat('hello', '-','word',':', 'hive');
-- 输出 hello-word:hive
  • 带分隔符字符串连接函数:concat_ws

语法:concat_ws(separator, [string | array(string)]+)

当多个字符串间连接字符相同时,可以改用函数:concat_ws

select concat_ws('-', 'a', 'b', 'c')

-- 输出 a-b-c
  • 字符串截取函数:substr,substring

语法:substr(str, pos[, len]) 或者 substring(str, pos[, len])

select substr('abcdef', -2); -- 如果为负数则倒着数2个,即ef

-- 从索引位置为3处,开始截取
select substr('abcdef', 3); -- 输出 cdef
-- 从索引位置为3处,截取2个字符
select substr('abcdef', 3, 2); -- 输出 cd
  • 字符串转大写函数:upper,ucase

select upper("angelababy");
select ucase("angelababy");
  • 字符串转小写函数:lower,lcase

select lower("ANGELABABY");
select lcase("ANGELABABY");
  • 去空格函数:trim

语法:trim 去除左右两边的空格

select trim(" ab cd ");
-- 输出 ab cd
  • 左边去空格函数:ltrim

  • 右边去空格函数:rtrim

  • 正则表达式替换函数:regexp_replace

语法:regexp_replace(str, regexp, rep)

select regexp_replace('100-200', '(\\d+)', 'num');
-- 输出 num-num
  • 正则表达式函数:regexp

校检身份证位数是否为18/15位

select '123456789123456789' regexp 'd{15}|d{18}'
-- 输出 true
select '12345678912345678' regexp 'd{15}|d{18}'
-- 输出 false
  • 正则表达式解析函数:regexp_extract

语法:regexp_extract(str, regexp[, idx]) 提取正则匹配到的指定组内容

select regexp_extract('100-200', '(\\d+)-(\\d+)', 2);
-- 输出 200
  • 空格字符串函数:space

语法:space(n) 返回指定个数空格

select space(4);
  • 重复字符串函数:repeat

语法:repeat(str, n) 重复str字符串n次

select repeat("angela",2);
  • 首字符ascii函数:ascii

语法:ascii

select ascii("angela");  --语法:a对应ASCII 97
  • 左补足函数:lpad

  • 右补足函数:rpad

  • 分割字符串函数: split

语法:分割字符串函数: split(str, regex)

select split('apache hive', ' ');

-- 输出 ["apache","hive"]
  • 集合查找函数: find_in_set

语法: find_in_set(str,str_arrasqly)

find_in_set 函数用于查找一个字符串是否存在于逗号分隔的字符串列表中

select find_in_set('apple', 'apple,orange,banana,mango');

该查询将返回1,因为 ‘apple’ 在给定的逗号分隔字符串列表中的第一个位置上

select find_in_set('pear', 'apple,orange,banana,mango');

这个查询将返回0,因为’pear’不在给定的逗号分隔字符串列表中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值