Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


SUBSTRB

📄字数 575
👁️阅读量 加载中...

功能描述

从指定字符串的指定位置开始截取指定长度的子串。

语法格式

sql
SUBSTRB(expr1, expr2[, expr3])

输入参数

  • expr1VARCHAR 类型,要截取的目标字符串;
  • expr2INTEGER/NUMERIC 类型,目标字符串中开始截取的位置;
  • expr3NUMERIC 类型,要截取的子字符串的长度,单位为字节。

提示

  • 缺省输入参数 expr3 时,输入参数 expr2 的数据类型为 INTEGER,反之当存在输入参数 expr3 时,输入参数 expr2 的数据类型为 NUMERIC;

输出结果

  • VARCHAR 类型,截取得到的子字符串;
  • 任意输入参数为 NULL 或者输入参数 expr2 的绝对值大于目标字符串的长度,以及要截取的子字符串长度小于 1 时,输出结果为 NULL
  • 对截取的起始位置的处理遵循以下规则(确认起始位置的查找方向受输入参数 expr2 影响,但截取方向始终向右):
    • 当起始位置大于 0 时,从左往右查找子字符串的第一个字节的位置;
    • 当起始位置小于 0 时,从右往左查找子字符串的第一个字节的位置;
    • 当起始位置等于 0 时,等同于起始位置为 1
    • 缺省输入参数 expr3 以及 expr3 参数值大于目标字符串截取位置到末尾的长度时,视为截取目标字符串到末尾。

示例

sql
-- 从第三个字节开始截取字符串'abcdef'
SQL> SELECT SUBSTRB('abcdef',3) FROM dual;

+-------+
| EXPR1 |
+-------+
| cdef  |
+-------+