跳到主要内容

字符串函数

本页面全面概述了 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'
REGEXP_SPLIT_TO_ARRAY使用正则表达式将字符串拆分为子字符串数组regexp_split_to_array('apple,banana,orange', ',');'['apple','banana','orange']'
REGEXP_SPLIT_TO_TABLE使用正则表达式将字符串拆分为行组成的表regexp_split_to_table('data,bend', ',', 2)

字符串填充与格式化

函数描述示例
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 / CHR根据 Unicode 码点返回字符串CHAR(68,97,116,97)'Data'
BIN返回二进制表示BIN(5)'101'
OCT返回八进制表示OCT(8)'10'
HEX返回十六进制表示HEX('ABC')'414243'
UNHEX将十六进制转换为字符串UNHEX('414243')'ABC'
TO_BASE64编码为 base64TO_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