字符串函数
本文介绍字符串函数的语法规则,包括参数解释、函数示例等。
函数列表
函数 |
描述 |
---|---|
在字符串的开头填充指定字符,直到指定长度后返回结果字符串。如果未指定填充字符,则使用“ ”进行填充。 |
|
在字符串的结尾填充指定字符,直到指定长度后返回结果字符串。如果未指定填充字符,则使用“ ”进行填充。 |
|
将字符串中的匹配字符串替换成指定的字符串,如果未指定替换字符串,则将匹配的字符串从原来的字符串中删除。 |
|
将字符串转换成反向顺序的字符串。 |
|
将字符串重复指定次数。 |
|
判断字符串是否包含指定字符串。 |
|
判断字符串是否不包含指定字符串。 |
|
将两个字符串拼接起来,返回拼接后的结果。 |
|
删除字符串左右两侧的空格。 |
|
将字符串转换成基于指定基数的Long型,如果未指定基数,则基于十进制对原始字符串进行转换。 |
|
使用指定的分隔符拆分字符串,并返回子字符串的集合。如果设置了limit,则使用limit限制拆分字符串的数量。 |
|
使用指定的分隔符拆分字符串,并返回指定位置的字符串。如果拆分后指定的位置超过数组的长度,则返回“”。 |
|
使用指定的第一个分隔符拆分字符串,然后使用指定的第二个分隔符第二次拆分字符串,返回第二次拆分后的结果。 |
|
返回以Java的String.format方式格式化的字符串。 |
|
查询目标子串初次出现在字符串中的位置,如果目标子串未出现在字符串中,则返回0。 |
|
使用起始位置和长度返回子字符串。如果没有长度参数,则返回从起始位置开始的整个字符串,同substring。 |
|
使用起始位置和长度返回子字符串。如果没有长度参数,则返回从起始位置开始的整个字符串。 |
|
如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。 |
|
与length函数功能一致,如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。 |
|
与length函数功能一致。 |
|
与length函数功能一致。 |
|
计算两个字符串str1和str2之间的最小编辑距离。 |
|
格式化字符串。 |
|
将字符串转换为UTF-8编码格式。 |
|
将ascii值转换成字符。 |
|
用于将多个参数拼接成一个字符串。 |
lpad函数
在字符串的开头填充指定字符,直到指定长度后返回结果字符串。如果未指定填充字符,则使用“ ”进行填充。
语法:lpad(str, len, lpadStr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
len |
结果字符串的长度。
|
int |
是 |
lpadStr |
填充字符。 |
String |
否 |
返回值类型:String类型
示例:SELECT LPAD('hello world', 10), LPAD('hello', 10, 'e')
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
LPAD('hello world', 10) |
LPAD('hello', 10, 'e') |
返回结果 |
hello worl |
eeeeehello |
rpad函数
在字符串的结尾填充指定字符,直到指定长度后返回结果字符串。如果未指定填充字符,则使用“ ”进行填充。
语法:rpad(str, len, rpadStr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
len |
结果字符串的长度。
|
Integer |
是 |
rpadStr |
填充字符。 |
String |
否 |
返回值类型:String类型
示例:SELECT RPAD('hello world', 10), RPAD('hello', 10, 'e')
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
RPAD('hello world', 10) |
RPAD('hello', 10, 'e') |
返回结果 |
hello worl |
helloeeeee |
replace函数
将字符串中的匹配字符串替换成指定的字符串,如果未指定替换字符串,则将匹配的字符串从原来的字符串中删除。
语法:replace(str, subStr, replaceStr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
subStr |
目标子串。 |
String |
是 |
replaceStr |
用于替换的字符串。 |
String |
否 |
返回值类型:String类型
示例:SELECT REPLACE('hello world', 'o'), REPLACE('hello world', 'w', 'new w')
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
REPLACE('hello world', 'o') |
REPLACE('hello world', 'w', 'new w') |
返回结果 |
hell wrld |
hello new world |
reverse函数
将字符串转换成反向顺序的字符串。
语法:reverse(str)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
返回值类型:String类型
示例:SELECT REVERSE('hello world')
类型 |
场景 |
---|---|
查询语句 |
REVERSE('hello world') |
返回结果 |
dlrow olleh |
repeat函数
将字符串重复指定次数。
语法:repeat(str, num)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
num |
重复次数 |
Integer |
是 |
返回值类型:String类型
示例:SELECT REPEAT('hello world', 2), REPEAT('hello world', 0)
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
REPEAT('hello world', 2) |
REPEAT('hello world', 0) |
返回结果 |
hello worldhello world |
contains_string函数
判断字符串是否包含指定字符串。
语法:contains_string(str, containsStr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
containsStr |
指定字符串。 |
String |
是 |
返回值类型:Boolean类型
示例:SELECT CONTAINS_STRING('hello world', 'llo')
类型 |
场景 |
---|---|
查询语句 |
CONTAINS_STRING('hello world', 'llo') |
返回结果 |
true |
icontains_string函数
判断字符串是否不包含指定字符串。
语法:icontains_string(str, containsStr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
containsStr |
指定字符串。 |
String |
是 |
返回值类型:Boolean类型
示例:SELECT ICONTAINS_STRING('hello world', 'llo')
类型 |
场景 |
---|---|
查询语句 |
ICONTAINS_STRING('hello world', 'llo') |
返回结果 |
false |
textcat函数
将两个字符串拼接起来,返回拼接后的结果。
语法:textcat(str1, str2)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str1 |
待拼接字符串1。 |
String |
是 |
str2 |
待拼接字符串2。 |
String |
是 |
返回值类型:String类型
示例:SELECT TEXTCAT('hello ', 'world')
类型 |
场景 |
---|---|
查询语句 |
TEXTCAT('hello ', 'world') |
返回结果 |
hello world |
btrim函数
删除字符串左右两侧的空格。
语法:btrim(str)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
返回值类型:String类型
示例:SELECT BTRIM(' hello world ')
类型 |
场景 |
---|---|
查询语句 |
BTRIM(' hello world ') |
返回结果 |
hello world |
parse_long函数
将字符串转换成基于指定基数的Long型,如果未指定基数,则基于十进制对原始字符串进行转换。
语法:parse_long(str, radix)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
radix |
基数。 |
Integer |
否 |
返回值类型:Long类型
示例:SELECT PARSE_LONG('-1234', 8), PARSE_LONG('1234')
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
PARSE_LONG('-1234', 8) |
PARSE_LONG('1234') |
返回结果 |
-668 |
1234 |
split函数
使用指定的分隔符拆分字符串,并返回子字符串的集合。如果设置了limit,则使用limit限制拆分字符串的数量。
语法:split(str, splitStr, limit)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
splitStr |
分隔符。 |
String |
是 |
limit |
基数。 |
Integer |
否 |
返回值类型:ARRAYS<STRING>类型
示例:SELECT SPLIT('helloworld', 'o'), SPLIT('helloworld', 'o', 2)
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
SPLIT('helloworld','o' ) |
SPLIT('helloworld', 'o', 2) |
返回结果 |
["hell","w","rld"] |
["hell","world"] |
split_part函数
使用指定的分隔符拆分字符串,并返回指定位置的字符串。如果拆分后指定的位置超过数组的长度,则返回“”。
语法:split_part(str, splitStr, position)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
splitStr |
分隔符。 |
String |
是 |
position |
需要返回的字符串的位置。 |
Integer |
是 |
返回值类型:STRING类型
示例:SELECT SPLIT_PART('helloworld', 'o', 2), SPLIT_PART('helloworld', 'o', 4)
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
SPLIT_PART('helloworld','o', 2) |
SPLIT_PART('helloworld', 'o', 4) |
返回结果 |
w |
split_to_map函数
使用指定的第一个分隔符拆分字符串,然后使用指定的第二个分隔符第二次拆分字符串。返回第二次拆分后的结果。
语法:split_to_map(str, splitStr1, splitStr2)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
splitStr1 |
分隔符1。 |
String |
是 |
splitStr2 |
分隔符2。 |
String |
是 |
返回值类型:ARRAY类型
示例:SELECT SPLIT_TO_MAP('upstream_response_time:123, request_time:456', ',', ':')
类型 |
场景 |
---|---|
查询语句 |
SPLIT_TO_MAP('upstream_response_time:123, request_time:456', ',', ':') |
返回结果 |
{" request_time":"456","upstream_response_time":"123"} |
string_format函数
返回以Java的String.format方式格式化的字符串。
语法:string_format(str, Object... args)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
args |
参数。 |
String/Integer/Long/Boolean/Double |
是 |
返回值类型:String类型
示例:SELECT STRING_FORMAT('My name is %s and I am %d years old.', 'name', age)
类型 |
场景 |
---|---|
查询语句 |
STRING_FORMAT('My name is %s and I am %d years old.', 'Tom', 25) |
返回结果 |
My name is Tom and I am 25 years old. |
- %d:Output integer.
- %f:Output floating point number.
- %s:Output character string.
- %n:Output newline character.
- %c:Output Characters
- %b:Output bool type
- %e:Output Exponential Type
- %tc:Output Date and time information
- %tF:Output format is YYY-MM-DD.
- %tr:Output in HH:MM:SS PM format
可以参考Java的String.format获取更多的细节。
strpos函数
查询目标子串初次出现在字符串中的位置,如果目标子串未出现在字符串中,则返回0。
语法:strpos(str, subStr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
subStr |
填充字符。 |
String |
是 |
返回值类型:Integer类型
示例:SELECT STRPOS('hello world', 'llo'), STRPOS('llo', 'hello world')
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
STRPOS('hello world', 'llo') |
STRPOS('llo', 'hello world') |
返回结果 |
3 |
0 |
substr函数
使用起始位置和长度返回子字符串。如果没有长度参数,则返回从起始位置开始的整个字符串,同substring。
语法:substr(str, start, length)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串 |
String |
是 |
start |
开始提取子串的位置,从1开始 |
Integer |
是 |
length |
子串的长度 |
Integer |
否 |
返回值类型:String类型
示例:SELECT SUBSTR('helloworld', 5), SUBSTR('helloworld', 5, 3)
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
SUBSTR ('helloworld', 5) |
SUBSTR ('helloworld', 5, 3) |
返回结果 |
oworld |
owo |
substring函数
使用起始位置和长度返回子字符串。如果没有长度参数,则返回从起始位置开始的整个字符串。
语法:substring(str, start, length)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
start |
开始提取子串的位置,从1开始。 |
Integer |
是 |
length |
子串的长度。 |
Integer |
否 |
返回值类型:String类型
示例:SELECT SUBSTRING('helloworld', 5), SUBSTRING('helloworld', 5, 3)
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
SUBSTRING('helloworld', 5) |
SUBSTRING('helloworld', 5, 3) |
返回结果 |
oworld |
owo |
length函数
如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。
语法:length(str)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
返回值类型:Integer类型
示例:SELECT LENGTH('HELLO WORLD')
类型 |
场景1 |
---|---|
查询语句 |
LENGTH('HELLO WORLD') |
返回结果 |
11 |
char_length函数
与length函数功能一致,如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。
语法:char_length(str)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串 |
String |
是 |
返回值类型:Integer类型
示例:SELECT CHAR_LENGTH('HELLO WORLD')
类型 |
场景 |
---|---|
查询语句 |
CHAR_LENGTH('HELLO WORLD') |
返回结果 |
11 |
character_length函数
与length函数功能一致。
语法:character_length(str)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
返回值类型:Integer类型
示例:SELECT CHARACTER_LENGTH('HELLO WORLD')
类型 |
场景 |
---|---|
查询语句 |
CHARACTER_LENGTH('HELLO WORLD') |
返回结果 |
11 |
strlen函数
与length函数功能一致。
语法:strlen(str)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
返回值类型:Integer类型
示例:SELECT STRLEN('HELLO WORLD')
类型 |
场景 |
---|---|
查询语句 |
STRLEN('HELLO WORLD') |
返回结果 |
11 |
levenshtein_distance函数
计算两个字符串str1和str2之间的最小编辑距离。
语法:levenshtein_distance(str1, str2)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str1 |
原始字符串1。 |
String |
是 |
str2 |
原始字符串2。 |
String |
是 |
返回值类型:Integer类型
示例:SELECT LEVENSHTEIN_DISTANCE('horse', 'ros')
类型 |
场景 |
---|---|
查询语句 |
LEVENSHTEIN_DISTANCE('horse', 'ros') |
返回结果 |
3 |
normalize函数
格式化字符串str。
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str |
原始字符串。 |
String |
是 |
form |
格式化类型。 |
String |
否 |
返回值类型:String类型
示例:SELECT NORMALIZE('schön'), NORMALIZE('Henry \u2163', 'nfd')
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
NORMALIZE('schön') |
NORMALIZE('Henry \u2163', 'nfd') |
返回结果 |
schön |
Henry Ⅳ |
to_utf8函数
将字符串转换为UTF-8编码格式。
语法:to_utf8(str)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str1 |
原始字符串1 |
String |
是 |
str2 |
原始字符串2 |
String |
是 |
返回值类型:Integer类型
示例:SELECT TO_UTF8('中')
类型 |
场景 |
---|---|
查询语句 |
TO_UTF8('中') |
返回结果 |
5Lit |