CHR:以字符串形式返回整数
N
对应的Unicode编码。CONCAT:字符串连接操作,其中任何一个参数为
null
,则返回值为null
。LENGTH:返回字符串
str
的长度。LOWER/LCASE:将字符串
str
中的字母转换为小写。LPAD:将字符串
str
左边拼接padstr
直到长度达到len
,并返回拼接后的字符串。LTRIM:删除字符串
str
所有前导空格。REPLACE:将
str
中的from_str
内容替换为to_str
。RIGHT:返回字符串
str
中最右边的len
个字符。LEFT:返回字符串
str
中最左边的len
个字符。REVERSE:返回
str
逆序后的字符串。RPAD:将字符串
str
右边拼接padstr
直到长度达到len
,并返回拼接后的字符串。RTRIM:删除字符串
str
的所有后置空格。SPLIT:将字符串按分隔符
delimiter
进行分隔,并返回数组。STRPOS:返回字符串
str
中子字符串substr
首次出现的位置,位置从1开始 ,如果未找到则返回0。SUBSTR/SUBSTRING:返回指定子串。
UPPER/UCASE:将字符串
str
中的字母转换为大写。NORMALIZE:使用NFC规范化形式返回字符串。
TO_UTF8:返回字符串的UTF-8编码格式。
ASCII:返回字符
str
或者字符串str
最左边字符对应的十进制ASCII值。BIN:返回
N
的二进制字符串。CHAR:返回整数
N1
、N2
…对应的十进制ASCII码组成的字符串。CHAR_LENGTH/CHARACTER_LENGTH:以字符为单位返回字符串
str
的长度。EXPORT_SET:返回一个字符串,根据整数
bits
的二进制位01
值,从右到左(从低位到高位)放置on
、off
字符串。1
的位置放on
字符串,0
的位置放off
字符串,由分隔符字符串(默认为逗号字符)分隔。 检查位数由number_of_bits
指定,如果未指定,默认值为64
。FIND_IN_SET:返回
str
在列表strlist
中的位置。FORMAT:将数字
X
格式化为#,###,###.##
样式,舍入到D
小数位,并将结果作为字符串返回。FROM_BASE64:解码Base64编码过的字符串,并以BINARY类型输出。
HEX:返回整数
N
所对应的十六进制字符串,或者返回str
中每个字符对应的十六进制数所组成的字符串。PRESTO_INSERT:将
str
中从pos
位置开始、长度为len
的字符串替换为newstr
。INSTR:返回字符串
str
中子字符串substr
首次出现的位置。LOCATE:返回字符串
str
中首次出现substr
的位置信息,或者返回字符串str
中从指定位置pos
开始首次出现substr
的位置信息。OCT:返回整数
N
的八进制字符串表示形式。ORD:返回参数最左侧字符的字符编码。
REPEAT:返回由字符串
str
重复count
次数组成的字符串。SOUNDEX:返回参数
str
的SOUNDEX字符串。SPACE:返回由指定数量空格组成的字符串。
SUBSTRING_INDEX:返回
str
中分隔符delimiter
第count
次出现之前的子字符串。INITCAP:将字符串的首字母转换为大写,其它字母均为小写。
REGEXP_COUNT:在源字符串
source_char
中搜索正则表达式pattern
,并返回该表达式在字符串中出现的次数。如果未找到匹配项,将返回0。REGEXP_SUBSTR:在源字符串
source_char
中从position
位置搜索符合正则表达式pattern
的子字符串。TRANSLATE:将
expr
中from_string
中的每个字符都被替换为to_string
中的相应字符。
CHR
chr(bigint N);
命令说明: 以字符串形式返回整数
N
对应的Unicode编码。返回值类型:VARCHAR。
示例:
select chr(65);
+---------+
| chr(65) |
+---------+
| A |
CONCAT
concat(string str1, …, string strn)
命令说明:字符串连接操作,其中任何一个参数为
null
,则返回值为null
。返回值类型:VARCHAR。
示例:
select concat('Data', ', ', 'Lake');
+------------------------------+
| concat('Data', ', ', 'Lake') |
+------------------------------+
| Data, Lake |
select concat('abc',null,'def');
+----------------------------+
| concat('abc', null, 'def') |
+----------------------------+
| NULL |
LENGTH
length(string str)
命令说明:返回字符串
str
的长度。返回值类型:BIGINT。
示例:
select length('aliyun');
+------------------+
| length('aliyun') |
+------------------+
| 6 |
LOWER/LCASE
lower(string str)
命令说明:将字符串
str
中的字母转换为小写。返回值类型:VARCHAR。
示例:
select lower('Aliyun');
+-----------------+
| lower('Aliyun') |
+-----------------+
| aliyun |
LPAD
lpad(string str, bigint len, string padstr)
命令说明:将字符串
str
左边拼接padstr
直到长度达到len
,并返回拼接后的字符串。如果
str
长于len
,则返回值将缩短为len
个字符。返回值类型:VARCHAR。
示例:
select lpad('Aliyun',9,'#');
+------------------------+
| lpad('Aliyun', 9, '#') |
+------------------------+
| ###Aliyun |
LTRIM
ltrim(string str)
命令说明:删除字符串
str
所有前导空格。返回值类型:VARCHAR。
示例:
select ltrim(' abc');
+----------------+
| ltrim(' abc') |
+----------------+
| abc |
REPLACE
replace(string str, string from_str, string to_str)
命令说明:将
str
中的from_str
内容替换为to_str
。返回值类型:VARCHAR。
示例:
select replace('WWW.aliyun.com', 'W', 'w');
+-------------------------------------+
| replace('WWW.aliyun.com', 'W', 'w') |
+-------------------------------------+
| www.aliyun.com |
RIGHT
right(string str, bigint len)
命令说明:返回字符串
str
中最右边的len
个字符。如果
str
或者len
为null
,返回结果为null
。返回值类型:VARCHAR。
示例:
select right('abc',3);
+---------------------+
| right('abc', 3) |
+---------------------+
| abc |
LEFT
left(string str, bigint len)
命令说明:返回字符串
str
中最左边的len
个字符。如果
str
或者len
为null
,则返回结果为null
。返回值类型:VARCHAR。
示例:
select left('foobarbar', 5);
+-----------------------------+
| left('foobarbar', 5) |
+-----------------------------+
| fooba |
REVERSE
reverse(string str)
命令说明:返回
str
逆序后的字符串。返回值类型:VARCHAR。
示例:
select reverse('123456');
+-------------------+
| reverse('123456') |
+-------------------+
| 654321 |
RPAD
rpad(string str, bigint len, string padstr)
命令说明:将字符串
str
右边拼接padstr
直到长度达到len
,并返回拼接后的字符串。如果
str
长于len
,则返回值将缩短为len
个字符。返回值类型:VARCHAR。
示例:
select rpad('Aliyun',9,'#');
+------------------------+
| rpad('Aliyun', 9, '#') |
+------------------------+
| Aliyun### |
RTRIM
rtrim(string str)
命令说明:删除字符串
str
的所有后置空格。返回值类型:VARCHAR。
示例:
select rtrim('barbar ');
+--------------------+
| rtrim('barbar ') |
+--------------------+
| barbar |
SPLIT
split(string str, delimiter)
split(string str, delimiter, limit)
split_part(string str, delimiter, index)
split_to_map(string str, entryDelimiter, keyValueDelimiter)
命令说明:
split(string str, delimiter)
将字符串str
按分隔符delimiter进行分隔,并返回数组。split(string str, delimiter, limit)
将字符串str
按分隔符delimiter分隔,并返回按limit大小限制的数组,且limit为正数。数组中的最后一个元素包含字符串中的所有剩余内容。split_part(string str, delimiter, index)
将字符串str
按分隔符delimiter分隔,并返回分隔后数组下标为index的子串,index以1开头,如果大于字段数则返回null。split_to_map(string str, entryDelimiter, keyValueDelimiter)
通过entryDelimiter和keyValueDelimiter拆分字符串str
并返回map。entryDelimiter将字符串分解为key-value对,keyValueDelimiter将每对分隔成key、value。
返回值类型:VARCHAR或map<varchar, varchar>
示例:
select split('1#2#3', '#'), split('#1#2#3#', '#'),
split('123', '#'), split('1#2#3', '#', 2);
| _col0 | _col1 | _col2 | _col3 |
+-----------+---------------+-------+----------+
| [1, 2, 3] | [, 1, 2, 3, ] | [123] | [1, 2#3] |
select split_part('A#B#C', '#', 2),
split_part('A#B#C', '#', 4);
+---------------------+-------------------------+
| _col0 | _col1 |
+---------------------+-------------------------+
| B | NULL |
select split_to_map('k1:v1,k2:v2', ',', ':'),
split_to_map('', ',', ':');
+---------------------+-------------------------+
| _col0 | _col1 |
+---------------------+-------------------------+
| {k1=v1, k2=v2} | {} |
STRPOS
strpos(string str, string substr)
命令说明:返回字符串
str
中子字符串substr
首次出现的起始位置,位置从1开始 ,如果未找到则返回0。返回值类型:BIGINT
示例:
select strpos('helloworld', 'o'),
strpos('helloworld', 'or'),
strpos('helloworld', 'x');
+-------+-------+-------+
| _col0 | _col1 | _col2 |
+-------+-------+-------+
| 5 | 7 | 0 |
SUBSTR/SUBSTRING
substring(string str, bigint pos)
substring(string str FROM pos)
substring(string str, bigint pos, bigint len)
substring(string str FROM pos FOR len)
命令说明:
substring(varchar str, bigint pos)
、SUBSTRING(varchar str FROM pos)
返回从pos
位置开始到字符串结束的子串。如果pos<0
,则起始位置从字符串的末尾开始倒数。substring(varchar str, bigint pos, bigint len)
、SUBSTRING(varchar str FROM pos FOR len)
返回从pos
位置开始长度为len
的子串。 如果pos<0
,则起始位置从字符串的末尾开始倒数。
返回值类型:VARCHAR。
示例:
select substr('helloworld', 6);
+-------------------------+
| substr('helloworld', 6) |
+-------------------------+
| world |
select substr('helloworld' from 6);
+-------------------------+
| substr('helloworld', 6) |
+-------------------------+
| world |
select substr('helloworld', 6, 3);
+----------------------------+
| substr('helloworld', 6, 3) |
+----------------------------+
| wor |
select substr('helloworld' from 6 for 3);
+----------------------------+
| substr('helloworld', 6, 3) |
+----------------------------+
| wor |
UPPER/UCASE
upper(string str)
命令说明:将字符串
str
中的字母转换为大写。返回值类型:VARCHAR。
示例:
select upper('Aliyun');
+-----------------+
| upper('Aliyun') |
+-----------------+
| ALIYUN |
NORMALIZE
normalize(string str)
命令说明:使用NFC规范化形式返回字符串。
返回值类型:VARCHAR。
示例:
select normalize('Aliyun');
+---------------------+
| normalize('Aliyun') |
+---------------------+
| Aliyun |
TO_UTF8
to_utf8(string str)
命令说明:返回字符串的UTF-8编码格式。
返回值类型:VARBINARY。
示例:
select to_utf8('Aliyun');
+-------------------+
| to_utf8('Aliyun') |
+-------------------+
| 41 6c 69 79 75 6e |
ASCII
ascii(string str)
命令说明:返回字符
str
或者字符串str
最左边字符对应的十进制ASCII值。返回值类型:BIGINT。
示例:
select ascii('2');
+------------+
| ascii('2') |
+------------+
| 50 |
select ascii('dx');
+-------------+
| ascii('dx') |
+-------------+
| 100 |
BIN
bin(bigint N)
命令说明:返回
N
的二进制字符串。如果
N
为null
,则返回结果为null
。返回值类型:VARCHAR。
示例:
select bin(12);
+---------+
| bin(12) |
+---------+
| 1100 |
CHAR
char(bigint N1, bigint N2...)
命令说明:返回整数
N1
、N2
…对应的十进制ASCII码组成的字符串。返回值类型:VARBINARY。
示例:
select char(97,110,97,108,121,116,105,99,100,98);
+----------------------------------------------------+
| char(97, 110, 97, 108, 121, 116, 105, 99, 100, 98) |
+----------------------------------------------------+
| analyticdb |
CHAR_LENGTH/CHARACTER_LENGTH
char_length(string str)
命令说明: 以字符为单位返回字符串
str
的长度。一个汉字所对应的字符长度是
1
。返回值类型:BIGINT。
示例:
select char_length('中国');
+---------------------+
| char_length('中国') |
+---------------------+
| 2 |
select char_length('abc');
+--------------------+
| char_length('abc') |
+--------------------+
| 3 |
EXPORT_SET
export_set(bigint bits, string on, string off[, string separator[, bigint number_of_bits]])
命令说明:返回一个字符串,根据整数
bits
的二进制位01
值,从右到左(从低位到高位)放置on
、off
字符串。1
的位置放on
字符串,0
的位置放off
字符串,由分隔符字符串(默认为逗号字符)分隔。 检查位数由number_of_bits
指定,如果未指定,默认值为64
。如果检查位数大于
64
,number_of_bits
将被静默剪裁为64
。检查位数为
-1
、64
,返回结果相同。返回值类型:VARCHAR。
示例:
select export_set(5,'1','0',',',2);
+---------------------------------+
| export_set(5, '1', '0', ',', 2) |
+---------------------------------+
| 1,0 |
select export_set(5,'1','0',',',10);
+----------------------------------+
| export_set(5, '1', '0', ',', 10) |
+----------------------------------+
| 1,0,1,0,0,0,0,0,0,0 |
FIND_IN_SET
find_in_set(string str, string strlist)
命令说明:返回
str
在列表strlist
中的位置。如果
str
不在strlist
中或者strlist
是空字符串,返回结果为0
。如果
str
、strlist
任一参数为null
,返回结果为null
。返回值类型:BIGINT。
示例:
select find_in_set('b','a,b,c,d');
+-----------------------------+
| find_in_set('b', 'a,b,c,d') |
+-----------------------------+
| 2 |
FORMAT
format(double X, bigint D)
命令说明:将数字
X
格式化为#,###,###.##
样式,舍入到D
小数位,并将结果作为字符串返回。如果
D
为0
,则返回结果没有小数点或小数部分。返回值类型:BIGINT。
示例:
select format(12332.123456, 4)as result1, format(12332.1,4)as result2, format(12332.2,0)as result3;
+-------------+-------------+---------+
| result1 | result2 | result3 |
+-------------+-------------+---------+
| 12,332.1235 | 12,332.1000 | 12,332 |
FROM_BASE64
from_base64(string str);
命令说明:解码Base64编码过的字符串,并以BINARY类型输出。
返回值类型:BINARY。
示例:
select from_base64(TO_BASE64('abc'));
+-------------------------------------+
| from_base64(TO_BASE64('abc')) |
+-------------------------------------+
| 61 62 63 |
HEX
hex(bigint N)
hex(string str)
命令说明:返回整数
N
所对应的十六进制字符串,或者返回str
中每个字符对应的十六进制数所组成的字符串。返回值类型:VARCHAR。
示例:
select hex(16);
+---------+
| hex(16) |
+---------+
| 10 |
select hex('16');
+-----------+
| hex('16') |
+-----------+
| 3136 |
PRESTO_INSERT
presto_insetr(string str,bigint pos,bigint len,string newstr);
命令说明:将
str
中从pos
位置开始、长度为len
的字符串替换为newstr
。返回值类型:VARCHAR。
示例:
select presto_insert('Quadratic',3,4,'What');
+---------------------------------------+
| presto_insert('Quadratic',3,4,'What') |
+---------------------------------------+
| QuWhattic |
INSTR
instr(string str, string substr)
命令说明:返回字符串
str
中子字符串substr
首次出现的位置。返回值类型:BIGINT。
示例:
select instr('foobarbar', 'bar');
+---------------------------+
| instr('foobarbar', 'bar') |
+---------------------------+
| 4 |
LOCATE
locate(string substr, string str)
locate(string substr, string str, bigint pos)
命令说明:返回字符串
str
中首次出现substr
的位置信息,或者返回字符串str
中从指定位置pos
开始首次出现substr
的位置信息。如果
substr
不在str
中,返回结果为0
。如果
substr
或者str
为null
,返回结果为null
。返回值类型:BIGINT。
示例:
select locate('bar', 'foobarbar');
+----------------------------+
| locate('bar', 'foobarbar') |
+----------------------------+
| 4 |
select locate('bar', 'foobarbar', 7);
+-------------------------------+
| locate('bar', 'foobarbar', 7) |
+-------------------------------+
| 7 |
MID
mid(string str, bigint pos, bigint len)
命令说明:与SUBSTRING功能相同,从字符串
str
的pos
开始返回len
长度的子字符串。返回值类型:VARCHAR。
示例:
select mid('Quadratically',5,6);
+----------------------------+
| mid('Quadratically', 5, 6) |
+----------------------------+
| ratica |
select mid('Sakila', -5, 3);
+--------------------------------+
| mid('Sakila', INTEGER '-5', 3) |
+--------------------------------+
| aki |
OCT
oct(bigint N)
命令说明:返回整数
N
的八进制字符串表示形式。如果
N
为null
,返回结果为null
。返回值类型:VARCHAR。
示例:
select oct(12);
+---------+
| oct(12) |
+---------+
| 14 |
ORD
ord(string str);
命令说明:返回参数最左侧字符的字符编码。
返回值类型:BIGINT。
示例:
select ord('2');
+----------+
| ord('2') |
+----------+
| 50 |
REPEAT
repeat(string str, bigint count)
命令说明:返回由字符串
str
重复count
次数组成的字符串。如果
count<1
,则返回空字符串。如果
str
或count
为null
,则返回null
。返回值类型:VARCHAR。
示例:
select repeat('a', 3);
+----------------+
| repeat('a', 3) |
+----------------+
| aaa |
select repeat('abc', null);
+---------------------+
| repeat('abc', null) |
+---------------------+
| NULL |
select repeat(null, 3);
+-----------------+
| repeat(null, 3) |
+-----------------+
| NULL |
SOUNDEX
soundex(string str);
命令说明:返回参数
str
的SOUNDEX字符串。返回值类型:VARCHAR。
示例:
select soundex('Hello');
+------------------+
| soundex('Hello') |
+------------------+
| H400 |
SPACE
space(bigint N)
命令说明:返回由指定数量空格组成的字符串。
返回值类型:VARCHAR。
示例:
select concat("#", space(6), "#");
+----------------------------+
| concat('#', space(6), '#') |
+----------------------------+
| # # |
SUBSTRING_INDEX
substring_index(string str, string delimiter, bigint count);
命令说明:返回
str
中分隔符delimiter
第count
次出现之前的子字符串。如果
count>0
,将返回最后一个分隔符左边的所有子字符串。如果
count<0
,将返回最后一个分隔符右边的所有子字符串。
返回值类型:VARCHAR。
示例:
select substring_index('www.mysql.com', '.', 2);
+------------------------------------------+
| substring_index('www.mysql.com', '.', 2) |
+------------------------------------------+
| www.mysql |
INITCAP
inicap(string str);
命令说明:将字符串的首字母变为大写,其它字母均为小写。
返回值类型:VARCHAR。
示例:
select initcap('the soap');
+---------------------+
| initcap('the soap') |
+---------------------+
| The Soap |
REGEXP_COUNT
regexp_count(source_char, pattern);
命令说明:在源字符串
source_char
中搜索正则表达式pattern
,并返回该表达式在字符串中出现的次数。如果未找到匹配项,将返回0。返回值类型:BIGINT。
示例:
select regexp_count('rat cat\nbat dog', '.at');
+-----------------------------------------+
| regexp_count('rat cat\nbat dog', '.at') |
+-----------------------------------------+
| 3 |
REGEXP_SUBSTR
regexp_substr(source_char, pattern);
regexp_substr(source_char, pattern, position);
命令说明:在源字符串
source_char
中从position
位置搜索符合正则表达式pattern
的子字符串。返回值类型:VARCHAR。
示例:
select regexp_substr('Hello world bye', '\\b[a-z]([a-z]*)', 1);
+---------------------------------------------------------+
| regexp_substr('Hello world bye', '\\b[a-z]([a-z]*)', 1) |
+---------------------------------------------------------+
| orld |
TRANSLATE
translate(expr, from_string, to_string);
命令说明:将
expr
中from_string
中的每个字符都被替换为to_string
中的相应字符。返回值类型:VARCHAR。
示例:
select translate('acbd','ab','AB');
+-----------------------------+
| translate('acbd','ab','AB') |
+-----------------------------+
| AcBd |