impala系列:字符串函数
--=======================
常⽤字符串函数
--=======================
base64decode(string str) : base64 解码.
base64encode(string str) : base64 编码.
fnv_hash(type v) : 对参数值做hash, 注意结果有正有负
trim(string a): 去除 leading 和 trailing 的 space.
btrim(string a, string chars_to_trim): trim() 函数的加强版, 可以去除任何指定字符.
字符串函数连接implala 的字符串长度是按照字节计算的, 下⾯三个函数是完全⼀样的.
length('中国') : impala 返回值为 6.
char_length('中国') : impala 返回值为 6.
character_length('中国') : impala 返回值为 6.
Vertica 的字符串长度可以按照字节或字符计数的, 在 DDL 中是按照字节计算长度 (⽐如 char(10)), 在字符串函数中, 缺省是按照字符计数的. length('中国') : vertica 返回值为 2.
select CHAR_LENGTH('中国' USING OCTETS) : vertica 返回值为 6.
select CHAR_LENGTH('中国' USING characters) : vertica 返回值为 2.
vertica 的 CHAR_LENGTH() 也可以写成 CHARACTER_LENGTH().
concat(string a, ), 字符串拼接.
concat_ws(string sep, string a, ), 按照指定分隔符拼接字符串.
group_concat(string s, string sep), 按照指定分隔符, 将多⾏记录的 s 表达式结果拼接起来.
find_in_set(string str, string strList), 在以逗号分隔的字符串列表 strList 中查字符串, 结果为列表的下标, 下标起始为 1, 没到的话为 0, 如果两个参数有⼀个为 null, 返回值为 null.
instr(string str, string substr [, bigint position [, bigint occurrence ] ])
locate(string substr, string str[, int pos])
locate() 和 instr() 作⽤相同,返回⼦串在长字符串的下标, 下标以 1 开始. 两个函数的差异有:
它们的⼦串参数⼀个在前⼀个在后.
推荐是使⽤ instr(),因为它还可以⽀持匹配出现的次数, 并且可以⽤负数指定扫描的起始下标, 负数表⽰从长字符串结尾算.
substr(string a, int start [, int len]) ,提取⼦字符串
substring(string a, int start [, int len]) ,提取⼦字符串
replace(string initial, string target, string replacement), 替换字符串.
split_part(string source, string delimiter, bigint n) , split 字符串并获取指定下标的⼦串.
repeat(string str, int n), 重复拼接 n 次字符串.
lower(string a) 和 lcase(string a), 都是将参数转成⼩写形式.
upper(string a) 和 ucase(string a), 都是将参数转成⼤写形式.
regexp_extract(string subject, string pattern, int index) , 正则提取.
regexp_like(string source, string pattern[, string options]) ,正则 like.
regexp_replace(string initial, string pattern, string replacement) ,正则替换.
parse_url(string urlString, string partToExtract [, string keyToExtract]) , 解析 url 中的指定的部位.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论