参考
char_length(string str) 或 character_length(string str) 或 length(string A)
char_length(string str)
character_length(string str)
length(string A)
返回字符串长度,支持 UTF-8
select character_length('abc'), char_length('测试'), length('正式');
octet_length(string str)
返回以 UTF-8 编码方式存储该字符串所需的 8 位字节空间
select octet_length('English'), octet_length('中文');
format_number(number x, int d)
将数值格式化(四舍五入)为 ‘#,###,###.##’ 的字符串返回
select -- format_number(3.141592654*100, -2), -- 报错 format_number(3.141592654, 3), format_number(3.141592654, 0);
lower(string A) 或 lcase(string A)
lower(string A)
lcase(string A)
将字符串全部转为小写
select lower('Hello World!'), lcase('Hello Earth!');
upper(string A) 或 ucase(string A)
upper(string A)
ucase(string A)
将字符串全部转为大写
select upper('Hello World!'), ucase('Hello Earth!');
initcap(string A)
将字符串转为:“每个单词的第一个字母大写,其他字母小写,单词间用空格分隔” 的格式
select initcap('hello world!'), initcap('HELLO EARTH!'), initcap('HELLO JAVA!'), initcap('hi_hive!');
lpad(string str, int len, string pad)
使用 pad 从左边将 str 填充到指定的 len 长度
如果 len 小于 str 原有的长度,则从尾部进行截断
select lpad('cat', 5, '*'), lpad('cat', 3, '*'), lpad('cat', 2, '*'), lpad('cat', 5, '*_*');
rpad(string str, int len, string pad)
参考上面 lpad(string str, int len, string pad)
select rpad('cat', 5, '*'), rpad('cat', 3, '*'), rpad('cat', 2, '*'), rpad('cat', 5, '*_*');
ltrim(string A)
rtrim(string A)
trim(string A)
去掉字符串左右两侧侧的空字符
select ltrim(' cat '), length(ltrim(' cat ')), rtrim(' cat '), length(rtrim(' cat ')), trim(' cat '), length(trim(' cat '));
printf(String format, Obj... args)
类似 JAVA 中的 System.out.printf(String format, Object... args)
System.out.printf(String format, Object... args)
select printf('%d 只%s %d 张嘴,%d 只%s %d 条%s', 1, '青蛙', 1, 2, '眼睛', 4, '腿');
levenshtein(string A, string B)
返回两个字符串之间的 Levenshtein 距离(即编辑距离,指由一个字符串转换成另一个所需的最少编辑次数)
select levenshtein('kitten', 'sitting');
reverse(string A)
反转字符串
select reverse('kitty'), reverse(NULL);
repeat(string str, int n)
返回由 n 个 str (重放)构成的字符串
select repeat('kitty', 3), repeat('kitty', 0), repeat(NULL, 3);
space(int n)
返回由 n 个 “空格”(重放)构成的字符串
select space(5), length(space(5));
concat(string|binary A, string|binary B...)
将多个字符串拼接为一个
和 || 字符串拼接符一样,参考
||
select 'Hello'||'World!'||'Hello'||'Earth!', concat('Hello', 'World!', 'Hello', 'Earth!');
concat_ws(string SEP, string A, string B...)
使用指定的 SEP 拼接多个字符串
select concat_ws('_', 'Hello', 'World!', 'Hello', 'Earth!'), concat_ws(' ', 'Hello', 'World!', 'Hello', 'Earth!');
concat_ws(string SEP, array<string>)
将 “字符串数组” 转为使用指定 SEP 连接的字符串
select concat_ws(' ', array('Hello', 'World!', 'Hello', 'Earth!')), concat_ws(' ', 'Hello', array('World!', 'Hello', 'Earth!'));
elt(N int,str1 string,str2 string,str3 string,...)
返回第 N 个传入参数
如果 N 小于 1 或 N 大于字符串参数的个数 则返回 NULL
select elt(1, 'a', 'b', 'c', NULL), elt(3, 'a', 'b', 'c', NULL), elt(4, 'a', 'b', 'c', NULL), elt(0, 'a', 'b', 'c', NULL), elt(9, 'a', 'b', 'c', NULL);
split(string str, string pat)
以 pat 分割,将字符串转换为 array 对象
select split('cat|dog|parrot|turtle', '\\|');
str_to_map(text[, delimiter1, delimiter2])
字符串转为 map 对象
,
:
select str_to_map('cat:kitty,dog:puppy,parrot:polly'), str_to_map('cat.kitty;dog.puppy;parrot.polly', '\\;', '\\.');