SUBSTRB
📄字数 575
👁️阅读量 加载中...
功能描述
从指定字符串的指定位置开始截取指定长度的子串。
语法格式
sql
SUBSTRB(expr1, expr2[, expr3])
输入参数
expr1
:VARCHAR
类型,要截取的目标字符串;expr2
:INTEGER/NUMERIC
类型,目标字符串中开始截取的位置;expr3
:NUMERIC
类型,要截取的子字符串的长度,单位为字节。
提示
- 缺省输入参数
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 |
+-------+