**impala字符串函数最全版(强烈建议收藏)

本文基于impala3.2版本,所有的内置字符串函数;

一、加密解密函数
序号语法类型/方法名称输出类型使用说明
1base64decode (string str)string对字符串进行解密
2base64encode (string str)string对字符串进行加密

示例如下:

--使用示例                       |        对应输出                 |  对应函数序号
base64encode("impala")                  aW1wYWxh                   1
base64decode("aW1wYWxh")                impala                     2
二、ASCII转换函数
序号语法类型/方法名称输出类型使用说明
1ascii (string str)int返回字符串第一个字符对应的ascii编码
2chr (int char_code)string返回ascii编码对应的字符

示例如下:

--使用示例                  |    对应输出              | 对应函数序号
ascii("impala")                 105                   1
chr(105)                        i                     2
三、左右两边去空格/指定字符串函数
序号语法类型/方法名称输出类型使用说明
1trim(string a)string去掉左右两边的空格
2btrim(string a)string去掉左右两边的空格
3btrim(string a , string chars_to_trim)string去掉左右两边的指定字符
4ltrim(string a)string去掉左边的空格
5ltrim(string a , string chars_to_trim)string去掉左边的指定字符
6rtrim(string a)string去掉右边的空格
7rtrim(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
四、获取字符串长度
序号语法类型/方法名称输出类型使用说明
1length (string a)int获取字符串长度
2char_length (string a)int获取字符串长度
3character_length(string a )int获取字符串长度

**补充说明:**string类型的时候,返回的是一样的结果;char类型的时候length会把尾部的空格忽略,比如下面的结果就会输出为6;

示例如下:

--使用示例                    |      对应输出                       |    对应函数序号
length("impala  ")                  8                                  1
char_length("impala  ")             8                                  2
character_length("impala  ")        8                                  3
五、字符串拼接函数
序号语法类型/方法名称输出类型使用说明
1concat (string a,string b…)string返回a,b…拼接起来的字符串
2concat_ws (string seq,string a, string b…)string返回a,b…拼接起来的字符串,用seq隔开
3group_concat (string s)string把列s的结果都取出来以, 间隔(这个是,后一个空格)
4group_concat (string s , string seq)string把列s的结果都取出来以seq 间隔
5lpad(string str , int len , string pad)string在左边用pad填充满len个字符
6rpad(string str , int len , string pad)string在右边用pad填充满len个字符
7repeat(string str , int n)string返回str重复n次的字符串

**补充说明:**group concat的示例表 t1 如下:

a (int)b (string)
1one
3three
2two
1one

示例如下:

--使用示例                                |      对应输出                  |      对应函数序号
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

六、正则函数
序号语法类型/方法名称输出类型使用说明
1regexp_like(string source, string pattern)boolean判断字符串是否包含符合正则的字符
2regexp_like(string source, string pattern, string options)boolean判断是否包含符合正则的字符(第三参数是匹配模式)
3regexp_replace(string str, string pattern, string replacement)string把符合正则的字符替换成指定的字符串
4regexp_extract(string subject, string pattern, int index)string提取出符合正则的字符串( 0表示整个,1表示第1部分)
5regexp_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 
七、字符串截取函数
序号语法类型/方法名称输出类型使用说明
1left (string a, int num_chars)string从字符串左边取指定长度的字符串
2right (string a, int num_chars)string从字符串右边取指定长度的字符串
3strleft (string a, int num_chars)string从字符串左边取指定长度的字符串
4strright (string a, int num_chars)string从字符串右边取指定长度的字符串
5substr/substring (string a, int start)string从字符串左边指定位置开始截取剩余字符串
6substr/substring (string a, int start, int len)string从字符串左边指定位置开始截取指定长度字符串
7split_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
八、大小写转换函数
序号语法类型/方法名称输出类型使用说明
1ucase(string a)string把字符串都转化成大写
2upper(string a)string把字符串都转化成大写
3lcase(string a)string把字符串都转化成小写
4lower(string a)string把字符串都转化成小写
5initcap(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
九、查询指定位置函数
序号语法类型/方法名称输出类型使用说明
1find_in_set (string str, string strlist)int查询数组中指定字符串的开始位置
2instr (string str, string substr)int查询数组中指定字符串的开始位置
3instr (string str, string substr, bigint position)int查询数组中指定字符串的开始位置(从指定位置开始)
4instr (string str, string substr, bigint position, bigint iccurrence)int查询数组中指定字符串开始位置(指定位置和序数开始)
5locate(string substr, string str)int查询较长字符串中子字符串首次出现的位置
6locate(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
十、字符串替换函数
序号语法类型/方法名称输出类型使用说明
1translate(string input, string from ,string to)string将input中的from替换成to
2replace(string initiial, string target, string replacement)string将initiial中的target替换成replacement
3regexp_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
十一、其他函数
序号语法类型/方法名称输出类型使用说明
1levenshtein (string str1, string str2)int返回str1变成str2需要执行的步骤次数
2space(int n)string返回n个空格
3reverse(string a)string反转字符串
4parse_url(string urlstring, string partToExtract)string解析url获取指定部分
5parse_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')
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐