SUBSTRING
更新时间:2025-10-17
描述
SUBSTRING 函数用于从字符串中提取子字符串。可以指定起始位置和长度,支持正向和反向提取。字符串中第一个字符的位置为 1。
别名
SUBSTR
语法
SQL
1SUBSTRING(<str>, <pos> [, <len>])
参数
| 参数 | 说明 |
|---|---|
<str> |
源字符串。类型:VARCHAR |
<pos> |
起始位置,可以为负数。类型:INT |
<len> |
可选参数,要提取的长度。类型:INT |
返回值
返回 VARCHAR 类型,表示提取的子字符串。
特殊情况:
- 如果任意参数为 NULL,返回 NULL
- 如果 pos 为 0,返回空字符串
- 如果 pos 为负数,从字符串末尾开始向前计数
- 如果 pos 超出字符串长度,返回空字符串
- 如果不指定 len,则返回从 pos 到字符串末尾的所有字符
示例
- 基本用法(指定起始位置)
SQL
1SELECT substring('abc1', 2);
Text
1+-----------------------------+
2| substring('abc1', 2) |
3+-----------------------------+
4| bc1 |
5+-----------------------------+
- 使用负数位置
SQL
1SELECT substring('abc1', -2);
Text
1+-----------------------------+
2| substring('abc1', -2) |
3+-----------------------------+
4| c1 |
5+-----------------------------+
- 位置为 0 的情况
SQL
1SELECT substring('abc1', 0);
Text
1+----------------------+
2| substring('abc1', 0) |
3+----------------------+
4| |
5+----------------------+
- 位置超出字符串长度
SQL
1SELECT substring('abc1', 5);
Text
1+-----------------------------+
2| substring('abc1', 5) |
3+-----------------------------+
4| |
5+-----------------------------+
- 指定长度参数
SQL
1SELECT substring('abc1def', 2, 2);
Text
1+-----------------------------+
2| substring('abc1def', 2, 2) |
3+-----------------------------+
4| bc |
5+-----------------------------+
