字符串操作函数

最近更新时间:2019-01-30 16:14:05

字符串操作函数的函数名和功能如下:

函数名 功能描述
string1 | | string2 连接两个字符串。
CHAR_LENGTH(string) 返回字符串的长度。
CHARACTER_LENGTH(string) 与 CHAR_LENGTH(string) 相同。
UPPER(string) 返回 string 的全大写字母形式。
LOWER(string) 返回 string 的全小写字母形式。
POSITION(string1 IN string2) 获取 string1 在 string2 中第一次出现的位置。
TRIM( { BOTH | LEADING | TRAILING } string1 FROM string2) 去掉 string2 中以 string1 两端 / 开头 / 结尾的 string1 部分。默认会移除两端的空格。
OVERLAY(string1 PLACING string2 FROM start_pos [ FOR length ]) 将 string1 从第 start_pos 位开始的子串替换为 string2。可以指定替换的长度。
SUBSTRING(string from pos) [ FOR length] 获取从 pos 位开始的子串,默认行为是直到源字符串的最后,可以使用 FOR 来指定子串的长度。
INITCAP(string) 将 string 转为以大写字母开头,其他是小写字母的形式。单词之间使用非字母和数字的字符分隔。
CONCAT(string1, string2 …) 连接多个字符串。若任意字符串为 NULL,则结果为 NULL。
CONCAT_WS(separator, string1, string2, …) 使用指定的分隔符 separator 连接多个字符串。如果 separator 为 NULL,则结果为 NULL。如果某个字符串为 NULL,则跳过它;不会跳过空字符串,例如 CONCAT_WS("~", "AA","BB", "", "CC") 会返回 AA~BB~~CC。
LPAD(text, length, padding) 使用 padding 指定的字符串从左侧填充 text 字符串到指定长度 length。如果 text 比 length 更长,则会截断到 length 的长度。
RPAD(text, length, padding) 使用 padding 指定的字符串从右侧填充 text 字符串到指定长度 length。如果 text 比 length 更长,则会截断到 length 的长度。
UNBASE64(string) 将 Base64 编码的字符串解码为 Byte[] 字节数组(若希望解码为字符串,请于外部嵌套 DECODE() 方法;或者直接使用下面的 UNBASE64_TO_STRING() 函数)。
UNBASE64_TO_STRING(string) 或 UNBASE64_TO_STRING(string, charset) 将 string 表示的 Base64 编码的字符串解码为实际字符串,等同于 DECODE(UNBASE64(string), charset)。
注意:若不显式指定 charset 字符集,则默认为 “UTF-8” 编码。
BASE64(binary) 将 binary 表示的 Byte[] 字节数组编码为 Base64 字符串。
BASE64_FROM_STRING(string) 或 BASE64_FROM_STRING(string, charset) 将 string 字符串编码为 Base64 字符串,等同于 BASE64(ENCODE(string, charset))。
注意:若不显式指定 charset 字符集,则默认为 “UTF-8” 编码。
ENCODE(string) 或 ENCODE(string, charset) 将 string 字符串以 charset 指定的字符集编码为 Byte[] 数组,例如 ENCODE(st, ‘GBK’)。
注意:若不显式指定 charset 字符集,则默认为 “UTF-8” 编码。
DECODE(string) 或 DECODE(binary, charset) 将 binary 表示的 Byte[] 字节数组以 charset 指定的字符集解码,例如 DECODE(binary_field, ‘GB2312’)。
注意:若不显式指定 charset 字符集,则默认为 “UTF-8” 编码。
SPLIT_INDEX(string, separator, index) 将 string 表示的字符串以 separator 指定的分隔符拆分,并获取第 index 项,返回值为字符串 VARCHAR 类型。其中 index 从0开始计数。
SPLIT(string, separator) 将 string 表示的字符串以 separator 指定的分隔符拆分,并返回一个 Row 类型的对象。其中 index 从0开始计数。
EXPLODE(inputStr, separator) 将某个字符串分割为一张有多行的临时表。这个函数属于 Table Function,需要使用 LATERAL TABLE ( ) 关键字来引用此动态生成的临时表并作为 JOIN 条件的右表。
GET_ROW_ARITY(row) 获取某个 Row 类型对象 row 的列数。
GET_ROW_FIELD_STR(row, index) 获取某个 Row 类型对象 row 的第 index 列的值,index 从0开始。返回值为字符串 VARCHAR 类型。
GET_JSON_OBJECT(json_str, path_str) 按 path_str 指定的 JSONPath 路径,获取某个 JSON 字符串 json_str 中的元素,可以任意嵌套。支持的 JSONPath 语法:$ 表示根对象,. 表示子元素, [] 表示数组索引, * 为数组索引 [] 的通配符。