字符串函数

更新时间: 2023-04-26 09:40:26

本文介绍Lindorm支持的字符串函数的用法及示例。

使用限制

宽表引擎为2.5.1.1版本及以上。如何查看和升级当前版本,请参见宽表引擎版本说明升级小版本

字符串函数列表

Lindorm支持的字符串函数如下表所示:

函数

说明

TRIM

删除字符串前后的空格。

LENGTH

计算字符串的长度。

START_WITH

判断字符串的前缀是否为指定字符串。

CONCAT

将多个字符串拼接成一个新的字符串。

UPPER

将字符串中所有的字母都转换为大写字母。

LOWER

将字符串中所有的字母都转换为小写字母。

SUBSTR

返回字符串中指定长度的子串。

REGEXP_SUBSTR

返回从字符串指定位置开始,匹配指定规则的子串。

REGEXP_REPLACE

从字符串指定位置开始,将匹配指定规则的子串替换为新的字符串。

MD5

计算指定字符串的MD5值。

REPLACE

将匹配指定规则的子串替换为新的字符串。

REVERSE

返回逆序的字符串。

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'

需要拼接的字符串,多个字符串之间用英文逗号(,)分隔。

示例

将单独的字符串abc进行连接,组成一个新的字符串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的整数。不指定该参数时,则默认返回pos参数指定位置到字符串末尾的子串。

示例

示例一:不指定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逆序输出。

阿里云首页 云原生多模数据库 Lindorm 相关技术圈