impala字符串函数最全版

impala字符串函数最全版

https://blog.csdn.net/weixin_43140586/article/details/115007077

本文基于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')
posted @ 2022-07-21 16:02  赤兔胭脂小吕布  阅读(2481)  评论(0)    收藏  举报