Skip to main content

字符串函数

本页面全面概述了 Databend 中的字符串函数,按功能分类以便参考。

字符串拼接与操作

函数描述示例
CONCAT拼接字符串CONCAT('data', 'bend')'databend'
CONCAT_WS使用分隔符拼接字符串CONCAT_WS('-', 'data', 'bend')'data-bend'
INSERT在指定位置插入字符串INSERT('databend', 5, 0, 'cloud')'databcloudbend'
REPLACE替换子串的所有匹配项REPLACE('databend', 'bend', 'cloud')'datacloud'
TRANSLATE替换指定字符TRANSLATE('databend', 'abn', '123')'d1t12e3d'

字符串提取

函数描述示例
LEFT返回左侧指定长度的字符LEFT('databend', 4)'data'
RIGHT返回右侧指定长度的字符RIGHT('databend', 4)'bend'
SUBSTR / SUBSTRING提取子字符串SUBSTR('databend', 5, 4)'bend'
MID提取子字符串 (SUBSTRING 的别名)MID('databend', 5, 4)'bend'
SPLIT分割字符串为数组SPLIT('data,bend', ',')['data', 'bend']
SPLIT_PART返回分割后的指定部分SPLIT_PART('data,bend', ',', 2)'bend'

字符串填充与格式化

函数描述示例
LPAD左侧填充字符串至指定长度LPAD('bend', 8, 'data')'databend'
RPAD右侧填充字符串至指定长度RPAD('data', 8, 'bend')'databend'
REPEAT重复字符串 n 次REPEAT('data', 2)'datadata'
SPACE生成指定长度的空格字符串SPACE(4)' '
REVERSE反转字符串REVERSE('databend')'dnebtad'

字符串修剪

函数描述示例
TRIM移除开头和结尾的空格TRIM(' databend ')'databend'
TRIM_BOTH移除两端的指定字符TRIM_BOTH('xxdatabendxx', 'x')'databend'
TRIM_LEADING移除开头的指定字符TRIM_LEADING('xxdatabend', 'x')'databend'
TRIM_TRAILING移除结尾的指定字符TRIM_TRAILING('databendxx', 'x')'databend'
LTRIM移除开头的空格LTRIM(' databend')'databend'
RTRIM移除结尾的空格RTRIM('databend ')'databend'

字符串信息

函数描述示例
LENGTH返回字符串长度 (字符数)LENGTH('databend')8
CHAR_LENGTH / CHARACTER_LENGTH返回字符串长度 (字符数)CHAR_LENGTH('databend')8
BIT_LENGTH返回字符串位长度BIT_LENGTH('databend')64
OCTET_LENGTH返回字符串字节长度OCTET_LENGTH('databend')8
INSTR返回子串首次出现的起始位置INSTR('databend', 'bend')5
LOCATE返回子串首次出现的起始位置LOCATE('bend', 'databend')5
POSITION返回子串首次出现的起始位置POSITION('bend' IN 'databend')5
STRCMP比较两个字符串STRCMP('databend', 'datacloud')-1
JARO_WINKLER计算字符串相似度JARO_WINKLER('databend', 'databand')0.9619047619047619

大小写转换

函数描述示例
LOWER / LCASE转换为小写LOWER('DataBend')'databend'
UPPER / UCASE转换为大写UPPER('databend')'DATABEND'

模式匹配

函数描述示例
LIKE通配符模式匹配'databend' LIKE 'data%'true
NOT_LIKELIKE 的否定操作'databend' NOT LIKE 'cloud%'true
REGEXP / RLIKE正则表达式匹配'databend' REGEXP '^data'true
NOT_REGEXP / NOT_RLIKE正则匹配的否定操作'databend' NOT REGEXP '^cloud'true
REGEXP_LIKE返回正则匹配结果 (布尔值)REGEXP_LIKE('databend', '^data')true
REGEXP_INSTR返回正则匹配的起始位置REGEXP_INSTR('databend', 'bend')5
REGEXP_SUBSTR返回正则匹配的子串REGEXP_SUBSTR('databend', 'bend')'bend'
REGEXP_REPLACE替换正则匹配的内容REGEXP_REPLACE('databend', 'bend', 'cloud')'datacloud'
GLOBUnix 风格模式匹配'databend' GLOB 'data*'true

编码与解码

函数描述示例
ASCII返回首个字符的 ASCII 值ASCII('D')68
ORD返回首个字符的 Unicode 码点ORD('D')68
CHAR根据码点返回字符CHAR(68,97,116,97)'Data'
BIN返回数值的二进制表示BIN(5)'101'
OCT返回数值的八进制表示OCT(8)'10'
HEX返回字符串的十六进制表示HEX('ABC')'414243'
UNHEX将十六进制字符串解码为二进制字符串UNHEX('414243')'ABC'
TO_BASE64编码为 Base64 格式TO_BASE64('databend')'ZGF0YWJlbmQ='
FROM_BASE64解码 Base64 字符串FROM_BASE64('ZGF0YWJlbmQ=')'databend'

其他

函数描述示例
QUOTESQL 转义字符串QUOTE('databend')'"databend"'
SOUNDEX生成 Soundex 编码SOUNDEX('databend')'D315'
SOUNDSLIKE比较 Soundex 编码SOUNDSLIKE('databend', 'databand')true