impala字符串函数最全版(强烈建议收藏)
**impala字符串函数最全版(强烈建议收藏)本文基于impala3.2版本,所有的内置字符串函数;文章目录**impala字符串函数最全版(强烈建议收藏)一、加密解密函数二、ASCII转换函数三、左右两边去空格/指定字符串函数四、获取字符串长度五、字符串拼接函数六、正则函数七、字符串截取函数八、大小写转换函数九、查询指定位置函数十、字符串替换函数十一、其他函数一、加密解密函数序号语法类型/方法
**impala字符串函数最全版(强烈建议收藏)
本文基于impala3.2版本,所有的内置字符串函数;
文章目录
一、加密解密函数
序号 | 语法类型/方法名称 | 输出类型 | 使用说明 |
---|---|---|---|
1 | base64decode (string str) | string | 对字符串进行解密 |
2 | base64encode (string str) | string | 对字符串进行加密 |
示例如下:
--使用示例 | 对应输出 | 对应函数序号
base64encode("impala") aW1wYWxh 1
base64decode("aW1wYWxh") impala 2
二、ASCII转换函数
序号 | 语法类型/方法名称 | 输出类型 | 使用说明 |
---|---|---|---|
1 | ascii (string str) | int | 返回字符串第一个字符对应的ascii编码 |
2 | chr (int char_code) | string | 返回ascii编码对应的字符 |
示例如下:
--使用示例 | 对应输出 | 对应函数序号
ascii("impala") 105 1
chr(105) i 2
三、左右两边去空格/指定字符串函数
序号 | 语法类型/方法名称 | 输出类型 | 使用说明 |
---|---|---|---|
1 | trim(string a) | string | 去掉左右两边的空格 |
2 | btrim(string a) | string | 去掉左右两边的空格 |
3 | btrim(string a , string chars_to_trim) | string | 去掉左右两边的指定字符 |
4 | ltrim(string a) | string | 去掉左边的空格 |
5 | ltrim(string a , string chars_to_trim) | string | 去掉左边的指定字符 |
6 | rtrim(string a) | string | 去掉右边的空格 |
7 | rtrim(string a , string chars_to_trim) | string | 去掉右边的指定字符 |
示例如下:
--使用示例 | 对应输出 | 对应函数序号
trim(" impala ") "impala" 1
btrim(" impala ") "impala" 2
btrim("xzximpalayzy","xyz") "impala" 3
ltrim(" impala ") " impala" 4
ltrim("xzximpalayzy","xyz") "impalayzy" 5
ltrim(" impala ") "impala " 6
rtrim("xzximpalayzy","xyz") "xzximpala" 7
四、获取字符串长度
序号 | 语法类型/方法名称 | 输出类型 | 使用说明 |
---|---|---|---|
1 | length (string a) | int | 获取字符串长度 |
2 | char_length (string a) | int | 获取字符串长度 |
3 | character_length(string a ) | int | 获取字符串长度 |
**补充说明:**string类型的时候,返回的是一样的结果;char类型的时候length会把尾部的空格忽略,比如下面的结果就会输出为6;
示例如下:
--使用示例 | 对应输出 | 对应函数序号
length("impala ") 8 1
char_length("impala ") 8 2
character_length("impala ") 8 3
五、字符串拼接函数
序号 | 语法类型/方法名称 | 输出类型 | 使用说明 |
---|---|---|---|
1 | concat (string a,string b…) | string | 返回a,b…拼接起来的字符串 |
2 | concat_ws (string seq,string a, string b…) | string | 返回a,b…拼接起来的字符串,用seq隔开 |
3 | group_concat (string s) | string | 把列s的结果都取出来以, 间隔(这个是,后一个空格) |
4 | group_concat (string s , string seq) | string | 把列s的结果都取出来以seq 间隔 |
5 | lpad(string str , int len , string pad) | string | 在左边用pad填充满len个字符 |
6 | rpad(string str , int len , string pad) | string | 在右边用pad填充满len个字符 |
7 | repeat(string str , int n) | string | 返回str重复n次的字符串 |
**补充说明:**group concat的示例表 t1 如下:
a (int) | b (string) |
---|---|
1 | one |
3 | three |
2 | two |
1 | one |
示例如下:
--使用示例 | 对应输出 | 对应函数序号
concat("impala","xyz") impalaxyz 1
concat_ws(",","impala","xyz") impala,xyz 2
group_concat(b) one, three, two, one 3
group_concat(distinct b) one, three, two 3
group_concat(b) from t1 group by a 1 | one, one 3
2 | two
3 | three
group_concat(b,"--") one--three--two--one 4
lpad("impala",10,"x") xxxximpala 5
rpad("impala",10,"x") impalaxxxx 6
repeat("impala",2) impalaimpala 7
六、正则函数
序号 | 语法类型/方法名称 | 输出类型 | 使用说明 |
---|---|---|---|
1 | regexp_like(string source, string pattern) | boolean | 判断字符串是否包含符合正则的字符 |
2 | regexp_like(string source, string pattern, string options) | boolean | 判断是否包含符合正则的字符(第三参数是匹配模式) |
3 | regexp_replace(string str, string pattern, string replacement) | string | 把符合正则的字符替换成指定的字符串 |
4 | regexp_extract(string subject, string pattern, int index) | string | 提取出符合正则的字符串( 0表示整个,1表示第1部分) |
5 | regexp_escape(string source) | string | 返回特殊转义后的字符串 |
补充说明:
①regexp_extract如果index是1,2…匹配的是括号里面的内容,0的话也返回()组之外的部分,.*?表示非贪婪匹配的惯用语:
②regexp_like第三个参数使用说明:
参数 | 描述 |
---|---|
c | 区分大小写(默认) |
i | 不区分大小写 |
m | 多行匹配 |
n | 换行符匹配 |
示例如下:
--使用示例 | 对应输出 | 对应函数序号
regexp_like("impala","Imp") false 1
regexp_like("impala","Imp",'i') true 2
regexp_replace("impala","imp+",'oo') ooala 3
regexp_extract("im123pa456la789",".*?([0-9]*)",0) im123pa456la789 4
regexp_extract("im123pa456la789",".*?([0-9]*)",1) 789 5
regexp_escape("imp.ala") imp\.ala 6
七、字符串截取函数
序号 | 语法类型/方法名称 | 输出类型 | 使用说明 |
---|---|---|---|
1 | left (string a, int num_chars) | string | 从字符串左边取指定长度的字符串 |
2 | right (string a, int num_chars) | string | 从字符串右边取指定长度的字符串 |
3 | strleft (string a, int num_chars) | string | 从字符串左边取指定长度的字符串 |
4 | strright (string a, int num_chars) | string | 从字符串右边取指定长度的字符串 |
5 | substr/substring (string a, int start) | string | 从字符串左边指定位置开始截取剩余字符串 |
6 | substr/substring (string a, int start, int len) | string | 从字符串左边指定位置开始截取指定长度字符串 |
7 | split_part (string source , string delimiter ,bigint index) | string | 按照指定切割符号切分,取对应的部分 |
示例如下:
--使用示例 | 对应输出 | 对应函数序号
left("impala",2) im 1
right("impala",2) la 2
strleft("impala",2) im 3
strright("impala",2) la 4
substr("impala",2) mpala 5
substr("impala",2,4) mpal 6
split_part("im#pa#la","#",1) im 7
八、大小写转换函数
序号 | 语法类型/方法名称 | 输出类型 | 使用说明 |
---|---|---|---|
1 | ucase(string a) | string | 把字符串都转化成大写 |
2 | upper(string a) | string | 把字符串都转化成大写 |
3 | lcase(string a) | string | 把字符串都转化成小写 |
4 | lower(string a) | string | 把字符串都转化成小写 |
5 | initcap(string a) | string | 把单词的第一个字符大写,其他字母小写,单词以空格隔开 |
示例如下:
--使用示例 | 对应输出 | 对应函数序号
ucase("impala") IMPALA 1
upper("impala") IMPALA 2
lcase("IMPALA") impala 3
lower("IMPALA") impala 4
INITCAP("hello impala") Hello Impala 5
九、查询指定位置函数
序号 | 语法类型/方法名称 | 输出类型 | 使用说明 |
---|---|---|---|
1 | find_in_set (string str, string strlist) | int | 查询数组中指定字符串的开始位置 |
2 | instr (string str, string substr) | int | 查询数组中指定字符串的开始位置 |
3 | instr (string str, string substr, bigint position) | int | 查询数组中指定字符串的开始位置(从指定位置开始) |
4 | instr (string str, string substr, bigint position, bigint iccurrence) | int | 查询数组中指定字符串开始位置(指定位置和序数开始) |
5 | locate(string substr, string str) | int | 查询较长字符串中子字符串首次出现的位置 |
6 | locate(string substr, string str , int pos) | int | 查询str中substr首次出现位置(指定位置开始) |
示例如下:
--使用示例 | 对应输出 | 对应函数序号
find_in_set("impala","hello,impala") 2 1
instr("hello impala","impala") 7 2
instr("im hello im","im",7) 10 3
instr("im hello im","im",-3) 1 3 (负值表示从右往左开始寻找)
instr("i hello i i","i",1,2) 9 4
locate("impala","xxximpala") 4 5
locate("impala","impalaxxximpala",7) 10 6
十、字符串替换函数
序号 | 语法类型/方法名称 | 输出类型 | 使用说明 |
---|---|---|---|
1 | translate(string input, string from ,string to) | string | 将input中的from替换成to |
2 | replace(string initiial, string target, string replacement) | string | 将initiial中的target替换成replacement |
3 | regexp_replace (string initial, string pattern, string replacement) | string | 将initial中符合正则的字符串替换成replacement |
**示例如下:**translate是按照字符对照替换的,replacement是按照字符串匹配上整体替换
--使用示例 | 对应输出 | 对应函数序号
translate("impala","mpa","123") i123l3 1
replace("impala","mpa","123") i123la 2
regexp_replace("impala123","[0-9]+","xxx") impalaxxx 3
十一、其他函数
序号 | 语法类型/方法名称 | 输出类型 | 使用说明 |
---|---|---|---|
1 | levenshtein (string str1, string str2) | int | 返回str1变成str2需要执行的步骤次数 |
2 | space(int n) | string | 返回n个空格 |
3 | reverse(string a) | string | 反转字符串 |
4 | parse_url(string urlstring, string partToExtract) | string | 解析url获取指定部分 |
5 | parse_url(string urlstring, string partToExtract, string keytoextract) | string | 解析url获取指定部分key对应的value值 |
示例如下:
parse_url的第二个参数必须大写,可以是:‘PROTOCOL’ , ‘HOST’ , ‘PATH’ , ‘REF’ , ‘AUTHORITY’ , ‘FILE’ , ‘USERINFO’ , ‘QUERY’ ;
获取query查询的时候,可以指定key值获得对应的键值对;
--使用示例 | 对应输出 | 对应函数序号
levenshtein("impala","impaxx") 2 1
concat (space(5),"impala") “ impala” 2
reverse("impala") alapmi 3
parse_url('http://www.baidu.com','HOST') www.baidu.com 4
parse_url('http://facebook.com/path/p1/php?query=1&name=3', 3 5
'QUERY','name')
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)