字符串函数
本文介绍Lindorm支持的字符串函数的用法及示例。
使用限制
宽表引擎为2.5.1.1版本及以上。如何查看和升级当前版本,请参见宽表引擎版本说明和升级小版本。
字符串函数列表
Lindorm支持的字符串函数如下表所示:
函数 | 说明 |
删除字符串前后的空格。 | |
计算字符串的长度。 | |
判断字符串的前缀是否为指定字符串。 | |
将多个字符串拼接成一个新的字符串。 | |
将字符串中所有的字母都转换为大写字母。 | |
将字符串中所有的字母都转换为小写字母。 | |
返回字符串中指定长度的子串。 | |
返回从字符串指定位置开始,匹配指定规则的子串。 | |
从字符串指定位置开始,将匹配指定规则的子串替换为新的字符串。 | |
计算指定字符串的MD5值。 | |
将匹配指定规则的子串替换为新的字符串。 | |
返回逆序的字符串。 |
TRIM函数
TRIM函数用于删除字符串前后的空格。
语法
SELECT trim('string') AS str;
参数说明
参数 | 是否必填 | 说明 |
string | 是 | 待匹配的字符串。 |
示例
删除指定字符串 abc
前后的空格。
SELECT trim(' abc ') AS str;
返回结果:
+-----+
| str |
+-----+
| abc |
+-----+
返回结果为删除前后空格后的结果。
LENGTH函数
LENGTH函数用于计算字符串的长度。
语法
SELECT length('string') AS len;
参数说明
参数 | 是否必填 | 说明 |
string | 是 | 待匹配的字符串。 |
示例
计算字符串abc
的长度。
SELECT length('abc') AS len;
返回结果:
+-----+
| len |
+-----+
| 3 |
+-----+
返回结果为3,表示字符串abc
的长度为3。
START_WITH函数
START_WITH函数用于判断字符串的前缀是否为指定字符串。
语法
SELECT start_with('string', 'string1') AS val;
参数说明
参数 | 是否必填 | 说明 |
string | 是 | 待匹配的字符串。 |
string1 | 是 | 指定字符串。 |
示例
示例一:判断字符串abc
的前缀是否为指定字符串ab
。
SELECT start_with('abc', 'ab') AS val;
返回结果:
+--------+
| val |
+--------+
| true |
+--------+
返回结果为true,表示字符串abc
的前缀是指定字符串ab
。
示例二:判断字符串abc
的前缀是否为指定字符串bc
。
SELECT start_with('abc', 'bc') AS val;
返回结果:
+--------+
| val |
+--------+
| false |
+--------+
返回结果为false,表示字符串abc
的前缀不是指定字符串bc
。
CONCAT函数
CONCAT函数将多个字符串拼接成一个新的字符串。
语法
SELECT concat('string1','string2',...,'stringN') AS val;
参数说明
参数 | 是否必填 | 说明 |
'string1','string2',...,'stringN' | 是 | 需要拼接的字符串,多个字符串之间用英文逗号(,)分隔。 |
示例
将单独的字符串a
、b
和c
进行连接,组成一个新的字符串abc
。
SELECT concat('a','b','c') AS val;
返回结果:
+--------+
| val |
+--------+
| abc |
+--------+
返回结果为拼接后的新字符串,且字符串中间无间隔符。
UPPER函数
UPPER函数将字符串中所有的字母都转换为大写字母。
语法
SELECT upper('string') AS val;
参数说明
参数 | 是否必填 | 说明 |
string | 是 | 待转换的字符串。 |
示例
示例一:将字符串abc
中所有的字母都转换为大写字母。
SELECT upper('abc') AS val;
返回结果:
+--------+
| val |
+--------+
| ABC |
+--------+
返回结果为ABC,表示已将字符串abc
中所有的小写字母转换为大写字母ABC
。
示例二:将字符串aBC
中所有的字母都转换为大写字母。
SELECT upper('aBC') AS val;
返回结果:
+--------+
| val |
+--------+
| ABC |
+--------+
返回结果为ABC,表示已将字符串aBC
中所有的小写字母都转换为大写字母ABC
。
LOWER函数
LOWER函数将字符串中所有的字母都转换为小写字母。
语法
SELECT lower('string') AS val;
参数说明
参数 | 是否必填 | 说明 |
string | 是 | 待转换的字符串。 |
示例
示例一:将字符串ABC
中所有的字母都转换为小写字母。
SELECT lower('ABC') AS val;
返回结果:
+--------+
| val |
+--------+
| abc |
+--------+
返回结果为abc,表示已将字符串ABC
中所有的大写字母都转换为小写字母abc
。
示例二:将字符串Abc
中所有的字母都转换为小写字母。
SELECT lower('Abc') AS val;
返回结果:
+--------+
| val |
+--------+
| abc |
+--------+
返回结果为abc,表示已将字符串Abc
中所有的大写字母都转换为小写字母abc
。
SUBSTR函数
SUBSTR函数用于返回字符串中指定长度的子串。
语法
SELECT substr( string, pos, [len]) AS val;
参数说明
参数 | 是否必填 | 说明 |
string | 是 | 待匹配的字符串。 |
pos | 是 | 开始截取字符串的位置,取值为大于等于1的整数。 |
len | 否 | 从左向右截取字符串的长度,取值为大于等于1的整数。不指定该参数时,则默认返回 |
示例
示例一:不指定len
参数,默认返回字符串abc
第2个字符到字符串末尾的子串。
SELECT substr('abc', 2) AS val;
返回结果:
+-----+
| val |
+-----+
| bc |
+-----+
返回结果为bc,表示字符串abc
第2个字符至字符串末尾的子串。
示例二:指定len
参数,返回字符串abc
第1个字符到第2个字符的子串。
SELECT substr('abc', 1, 2) AS val;
返回结果:
+-----+
| val |
+-----+
| ab |
+-----+
返回结果为ab,表示字符串abc
第1个字符到第2个字符的子串。
REGEXP_SUBSTR函数
REGEXP_SUBSTR函数用于返回从字符串指定位置开始,匹配指定规则的子串。
语法
SELECT regexp_substr('string', pat, [pos]) AS val;
参数说明
参数 | 是否必填 | 说明 |
string | 是 | 待匹配的字符串。 |
pat | 是 | 正则表达式。 |
pos | 否 | 开始匹配字符串的位置,取值为大于等于1的整数。不指定该参数时,默认从第1个字符开始匹配。 |
示例
示例一:指定pos
参数,从字符串abc
的第3个字符开始匹配b
的子串。
SELECT regexp_substr('abc', 'b', 3) AS val;
返回结果:
+-----+
| val |
+-----+
| |
+-----+
返回结果为空,表示从字符串第3个字符开始无匹配b
的子串。
示例二:不指定pos
参数,默认从字符串abc
的第1个字符开始匹配b
的子串。
SELECT regexp_substr('abc', 'b') AS val;
返回结果:
+-----+
| val |
+-----+
| b |
+-----+
返回结果为b,表示从字符串第1个字符开始截取匹配b
的子串。
REGEXP_REPLACE函数
REGEXP_REPLACE函数从字符串指定位置开始,将匹配指定规则的子串替换为新的字符串。
语法
SELECT regexp_replace(‘string', pat, rep,[pos]) AS val;
参数说明
参数 | 是否必填 | 说明 |
string | 是 | 待匹配的字符串。 |
pat | 是 | 正则表达式。 |
rep | 是 | 替换的字符串。 |
pos | 否 | 开始匹配字符串的位置,取值为大于等于1的整数。不指定该参数时,默认从第1个字符开始匹配。 |
示例
示例一:不指定pos
参数。默认从第1个字符开始匹配,并将匹配b
的子串替换为c
。
SELECT regexp_replace('abc', 'b', 'c') AS val;
返回结果:
+-----+
| val |
+-----+
| acc |
+-----+
返回结果为acc,表示已将字符串abc
中匹配b
的子串替换为c
。
示例二:指定pos
参数。从第2个字符开始匹配,并将匹配b
的子串替换为c
。
SELECT regexp_replace('abcbc', 'b', 'c', 2) AS val;
返回结果:
+-------+
| val |
+-------+
| acccc |
+-------+
返回结果为acccc,表示已将字符串abcbc
中第2个字符至字符串末尾匹配b
的子串替换为c
。
示例三:指定pos
参数。从第3个字符开始匹配,并将匹配b
的子串替换为c
。
SELECT regexp_replace('abcbc', 'b', 'c', 3) AS val;
返回结果:
+-------+
| val |
+-------+
| abccc |
+-------+
返回结果为abccc,表示已将字符串abcbc
中第3个字符至字符串末尾匹配b
的子串替换为c
。
MD5函数
MD5函数用于计算指定字符串的MD5值。
语法
SELECT md5('string') AS val;
参数说明
参数 | 是否必填 | 说明 |
string | 是 | 待匹配的字符串。 |
示例
SELECT md5('abc') AS val;
+----------------------------------+
| val |
+----------------------------------+
| 900150983cd24fb0d6963f7d28e17f72 |
+----------------------------------+
返回结果为字符串abc
的MD5值。
REPLACE函数
REPLACE函数将匹配指定规则的子串替换为新的字符串。
语法
SELECT replace(‘string’, ‘from_str’, ‘to_str’) AS val;
参数说明
参数 | 是否必填 | 说明 |
string | 是 | 待匹配的字符串。 |
from_str | 是 | 指定字符串。 |
to_str | 是 | 替换的字符串。 |
示例
示例一:将字符串abc
中所有匹配bc
的子串都替换为cd
。
SELECT replace('abc', 'bc', 'cd') AS val;
返回结果:
+-----+
| val |
+-----+
| acd |
+-----+
返回结果为acd,表示已将字符串abc
中匹配bc
的子串替换为cd
。
示例二:将字符串abcbc
中所有匹配bc
的子串都替换为cd
。
SELECT replace('abcbc', 'bc', 'cd') AS val;
返回结果:
+-------+
| val |
+-------+
| acdcd |
+-------+
返回结果为acdcd,表示已将字符串abcbc
中匹配bc
的子串替换为cd
。
REVERSE函数
REVERSE函数用于返回逆序的字符串。
语法
SELECT reverse('string') AS val;
参数说明
参数 | 是否必填 | 说明 |
string | 是 | 待匹配的字符串。 |
示例
将字符串abc
逆序输出。
SELECT reverse('abc') AS val;
返回结果:
+-----+
| val |
+-----+
| cba |
+-----+
返回结果为cba ,表示已将字符串abc逆序输出。