更新时间:2024-01-25 GMT+08:00
分享

字符串函数

本文介绍字符串函数的语法规则,包括参数解释、函数示例等。

函数列表

表1 字符串函数

函数

描述

lpad函数

在字符串的开头填充指定字符,直到指定长度后返回结果字符串。如果未指定填充字符,则使用“ ”进行填充。

rpad函数

在字符串的结尾填充指定字符,直到指定长度后返回结果字符串。如果未指定填充字符,则使用“ ”进行填充。

replace函数

将字符串中的匹配字符串替换成指定的字符串,如果未指定替换字符串,则将匹配的字符串从原来的字符串中删除。

reverse函数

将字符串转换成反向顺序的字符串。

repeat函数

将字符串重复指定次数。

contains_string函数

判断字符串是否包含指定字符串。

icontains_string函数

判断字符串是否不包含指定字符串。

textcat函数

将两个字符串拼接起来,返回拼接后的结果。

btrim函数

删除字符串左右两侧的空格。

parse_long函数

将字符串转换成基于指定基数的Long型,如果未指定基数,则基于十进制对原始字符串进行转换。

split函数

使用指定的分隔符拆分字符串,并返回子字符串的集合。如果设置了limit,则使用limit限制拆分字符串的数量。

split_part函数

使用指定的分隔符拆分字符串,并返回指定位置的字符串。如果拆分后指定的位置超过数组的长度,则返回“”。

split_to_map函数

使用指定的第一个分隔符拆分字符串,然后使用指定的第二个分隔符第二次拆分字符串,返回第二次拆分后的结果。

string_format函数

返回以Java的String.format方式格式化的字符串。

strpos函数

查询目标子串初次出现在字符串中的位置,如果目标子串未出现在字符串中,则返回0。

substr函数

使用起始位置和长度返回子字符串。如果没有长度参数,则返回从起始位置开始的整个字符串,同substring。

substring函数

使用起始位置和长度返回子字符串。如果没有长度参数,则返回从起始位置开始的整个字符串。

length函数

如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。

char_length函数

与length函数功能一致,如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。

character_length函数

与length函数功能一致。

strlen函数

与length函数功能一致。

levenshtein_distance函数

计算两个字符串str1和str2之间的最小编辑距离。

normalize函数

格式化字符串。

to_utf8函数

将字符串转换为UTF-8编码格式。

chr函数

将ascii值转换成字符。

concat函数

用于将多个参数拼接成一个字符串。

lpad函数

在字符串的开头填充指定字符,直到指定长度后返回结果字符串。如果未指定填充字符,则使用“ ”进行填充。

语法:lpad(str, len, lpadStr)

表2 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

len

结果字符串的长度。

  • 如果原始字符串的长度小于len,那么在字符串的开头填充指定的字符。
  • 如果原始字符串的长度大于len,那么只返回字符串的len个字符。

int

lpadStr

填充字符。

String

返回值类型:String类型

示例:SELECT LPAD('hello world', 10), LPAD('hello', 10, 'e')

表3 查询分析结果

类型

场景1

场景2

查询语句

LPAD('hello world', 10)

LPAD('hello', 10, 'e')

返回结果

hello worl

eeeeehello

rpad函数

在字符串的结尾填充指定字符,直到指定长度后返回结果字符串。如果未指定填充字符,则使用“ ”进行填充。

语法:rpad(str, len, rpadStr)

表4 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

len

结果字符串的长度。

  • 如果原始字符串的长度小于len,那么在字符串的结尾填充指定的字符。
  • 如果原始字符串的长度大于len,那么只返回字符串的len个字符。

Integer

rpadStr

填充字符。

String

返回值类型:String类型

示例:SELECT RPAD('hello world', 10), RPAD('hello', 10, 'e')

表5 查询分析结果

类型

场景1

场景2

查询语句

RPAD('hello world', 10)

RPAD('hello', 10, 'e')

返回结果

hello worl

helloeeeee

replace函数

将字符串中的匹配字符串替换成指定的字符串,如果未指定替换字符串,则将匹配的字符串从原来的字符串中删除。

语法:replace(str, subStr, replaceStr)

表6 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

subStr

目标子串。

String

replaceStr

用于替换的字符串。

String

返回值类型:String类型

示例:SELECT REPLACE('hello world', 'o'), REPLACE('hello world', 'w', 'new w')

表7 查询分析结果

类型

场景1

场景2

查询语句

REPLACE('hello world', 'o')

REPLACE('hello world', 'w', 'new w')

返回结果

hell wrld

hello new world

reverse函数

将字符串转换成反向顺序的字符串。

语法:reverse(str)

表8 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

返回值类型:String类型

示例:SELECT REVERSE('hello world')

表9 查询分析结果

类型

场景

查询语句

REVERSE('hello world')

返回结果

dlrow olleh

repeat函数

将字符串重复指定次数。

语法:repeat(str, num)

表10 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

num

重复次数

Integer

返回值类型:String类型

示例:SELECT REPEAT('hello world', 2), REPEAT('hello world', 0)

表11 查询分析结果

类型

场景1

场景2

查询语句

REPEAT('hello world', 2)

REPEAT('hello world', 0)

返回结果

hello worldhello world

  

contains_string函数

判断字符串是否包含指定字符串。

语法:contains_string(str, containsStr)

表12 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

containsStr

指定字符串。

String

返回值类型:Boolean类型

示例:SELECT CONTAINS_STRING('hello world', 'llo')

表13 查询分析结果

类型

场景

查询语句

CONTAINS_STRING('hello world', 'llo')

返回结果

true

icontains_string函数

判断字符串是否不包含指定字符串。

语法:icontains_string(str, containsStr)

表14 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

containsStr

指定字符串。

String

返回值类型:Boolean类型

示例:SELECT ICONTAINS_STRING('hello world', 'llo')

表15 查询分析结果

类型

场景

查询语句

ICONTAINS_STRING('hello world', 'llo')

返回结果

false

textcat函数

将两个字符串拼接起来,返回拼接后的结果。

语法:textcat(str1, str2)

表16 参数说明

参数名称

描述

类型

是否必选

str1

待拼接字符串1。

String

str2

待拼接字符串2。

String

返回值类型:String类型

示例:SELECT TEXTCAT('hello ', 'world')

表17 查询分析结果

类型

场景

查询语句

TEXTCAT('hello ', 'world')

返回结果

hello world

btrim函数

删除字符串左右两侧的空格。

语法:btrim(str)

表18 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

返回值类型:String类型

示例:SELECT BTRIM(' hello world ')

表19 查询分析结果

类型

场景

查询语句

BTRIM(' hello world ')

返回结果

hello world

parse_long函数

将字符串转换成基于指定基数的Long型,如果未指定基数,则基于十进制对原始字符串进行转换。

语法:parse_long(str, radix)

表20 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

radix

基数。

Integer

返回值类型:Long类型

示例:SELECT PARSE_LONG('-1234', 8), PARSE_LONG('1234')

表21 查询分析结果

类型

场景1

场景2

查询语句

PARSE_LONG('-1234', 8)

PARSE_LONG('1234')

返回结果

-668

1234

split函数

使用指定的分隔符拆分字符串,并返回子字符串的集合。如果设置了limit,则使用limit限制拆分字符串的数量。

语法:split(str, splitStr, limit)

表22 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

splitStr

分隔符。

String

limit

基数。

Integer

返回值类型:ARRAYS<STRING>类型

示例:SELECT SPLIT('helloworld', 'o'), SPLIT('helloworld', 'o', 2)

表23 查询分析结果

类型

场景1

场景2

查询语句

SPLIT('helloworld','o' )

SPLIT('helloworld', 'o', 2)

返回结果

["hell","w","rld"]

["hell","world"]

split_part函数

使用指定的分隔符拆分字符串,并返回指定位置的字符串。如果拆分后指定的位置超过数组的长度,则返回“”。

语法:split_part(str, splitStr, position)

表24 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

splitStr

分隔符。

String

position

需要返回的字符串的位置。

Integer

返回值类型:STRING类型

示例:SELECT SPLIT_PART('helloworld', 'o', 2), SPLIT_PART('helloworld', 'o', 4)

表25 查询分析结果

类型

场景1

场景2

查询语句

SPLIT_PART('helloworld','o', 2)

SPLIT_PART('helloworld', 'o', 4)

返回结果

w

  

split_to_map函数

使用指定的第一个分隔符拆分字符串,然后使用指定的第二个分隔符第二次拆分字符串。返回第二次拆分后的结果。

语法:split_to_map(str, splitStr1, splitStr2)

表26 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

splitStr1

分隔符1。

String

splitStr2

分隔符2。

String

返回值类型:ARRAY类型

示例:SELECT SPLIT_TO_MAP('hello world', 'e', 'o')

表27 查询分析结果

类型

场景

查询语句

SPLIT_TO_MAP('hello world', 'e', 'o')

返回结果

["h","ll"," w","rld"]

string_format函数

返回以Java的String.format方式格式化的字符串。

语法:string_format(str, Object... args)

表28 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

args

参数。

String/Integer/Long/Boolean/Double

返回值类型:String类型

示例:SELECT STRING_FORMAT('My name is %s and I am %d years old.', 'name', age)

表29 查询分析结果

类型

场景

查询语句

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)

表30 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

subStr

填充字符。

String

返回值类型:Integer类型

示例:SELECT STRPOS('hello world', 'llo'), STRPOS('llo', 'hello world')

表31 查询分析结果

类型

场景1

场景2

查询语句

STRPOS('hello world', 'llo')

STRPOS('llo', 'hello world')

返回结果

3

0

substr函数

使用起始位置和长度返回子字符串。如果没有长度参数,则返回从起始位置开始的整个字符串,同substring。

语法:substr(str, start, length)

表32 参数说明

参数名称

描述

类型

是否必选

str

原始字符串

String

start

起始位置

Integer

length

长度

Integer

返回值类型:String类型

示例:SELECT SUBSTR('helloworld', 5), SUBSTR('helloworld', 5, 3)

表33 查询分析结果

类型

场景1

场景2

查询语句

SUBSTR ('helloworld', 5)

SUBSTR ('helloworld', 5, 3)

返回结果

oworld

owo

substring函数

使用起始位置和长度返回子字符串。如果没有长度参数,则返回从起始位置开始的整个字符串。

语法:substring(str, start, length)

表34 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

start

起始位置。

Integer

length

长度。

Integer

返回值类型:String类型

示例:SELECT SUBSTRING('helloworld', 5), SUBSTRING('helloworld', 5, 3)

表35 查询分析结果

类型

场景1

场景2

查询语句

SUBSTRING('helloworld', 5)

SUBSTRING('helloworld', 5, 3)

返回结果

oworld

owo

length函数

如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。

语法:length(str)

表36 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

返回值类型:Integer类型

示例:SELECT LENGTH('HELLO WORLD')

表37 查询分析结果

类型

场景1

查询语句

LENGTH('HELLO WORLD')

返回结果

11

char_length函数

与length函数功能一致,如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。

语法:char_length(str)

表38 参数说明

参数名称

描述

类型

是否必选

str

原始字符串

String

返回值类型:Integer类型

示例:SELECT CHAR_LENGTH('HELLO WORLD')

表39 查询分析结果

类型

场景

查询语句

CHAR_LENGTH('HELLO WORLD')

返回结果

11

character_length函数

与length函数功能一致。

语法:character_length(str)

表40 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

返回值类型:Integer类型

示例:SELECT CHARACTER_LENGTH('HELLO WORLD')

表41 查询分析结果

类型

场景

查询语句

CHARACTER_LENGTH('HELLO WORLD')

返回结果

11

strlen函数

与length函数功能一致。

语法:strlen(str)

表42 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

返回值类型:Integer类型

示例:SELECT STRLEN('HELLO WORLD')

表43 查询分析结果

类型

场景

查询语句

STRLEN('HELLO WORLD')

返回结果

11

levenshtein_distance函数

计算两个字符串str1和str2之间的最小编辑距离。

语法:levenshtein_distance(str1, str2)

表44 参数说明

参数名称

描述

类型

是否必选

str1

原始字符串1。

String

str2

原始字符串2。

String

返回值类型:Integer类型

示例:SELECT LEVENSHTEIN_DISTANCE('horse', 'ros')

表45 查询分析结果

类型

场景

查询语句

LEVENSHTEIN_DISTANCE('horse', 'ros')

返回结果

3

normalize函数

格式化字符串str。

  • 使用NFC格式格式化字符串str。

    语法:normalize(str)

  • 使用给定格式格式化字符串str,支持的格式有NFC, NFD, NFKC, NFKD.

    语法:normalize(str, form)

表46 参数说明

参数名称

描述

类型

是否必选

str

原始字符串。

String

form

格式化类型。

String

返回值类型:String类型

示例:SELECT NORMALIZE('schön'), NORMALIZE('Henry \u2163', 'nfd')

表47 查询分析结果

类型

场景1

场景2

查询语句

NORMALIZE('schön')

NORMALIZE('Henry \u2163', 'nfd')

返回结果

schön

Henry Ⅳ

to_utf8函数

将字符串转换为UTF-8编码格式。

语法:to_utf8(str)

表48 参数说明

参数名称

描述

类型

是否必选

str1

原始字符串1

String

str2

原始字符串2

String

返回值类型:Integer类型

示例:SELECT TO_UTF8('中')

表49 查询分析结果

类型

场景

查询语句

TO_UTF8('中')

返回结果

%E4%B8%AD

chr函数

将ascii值转换成字符。

语法:chr(ascii)

表50 参数说明

参数名称

描述

类型

是否必选

ascii

ascii码

Integer

返回值类型:String类型

示例:SELECT CHR(99)

表51 查询分析结果

类型

场景

查询语句

CHR(99)

返回结果

c

concat函数

用于将多个参数拼接成一个字符串。

语法:concat(x, y...)

表52 参数说明

参数名称

描述

类型

是否必选

x,y...

原始字段。

任意

返回值类型:String类型

示例:select concat(1,'+',1)

表53 查询分析结果

类型

场景

查询语句

concat(1,'+',1)

返回结果

1+1

分享:

    相关文档

    相关产品