SUBSTRING_INDEX
📄字数 517
👁️阅读量 加载中...
功能描述
在指定字符串中按指定分隔符截取字符串。
语法格式
sql
SUBSTRING_INDEX(expr1,expr2,expr3)
输入参数
expr1
:VARCHAR
类型或者能隐式转换为VARCHAR
类型的其他类型的值,源字符串。expr2
:VARCHAR
类型或者能隐式转换为VARCHAR
类型的其他类型的值,分隔符。expr3
:INTEGER
类型或者能隐式转换为INTEGER
类型的其他类型的值,分隔符出现的次数,并据此确定截取位置。
输出结果
VARCHAR
类型,任意输入参数为 NULL
时,输出结果为 NULL
。对截取的起始位置以及截取长度的处理遵循以下规则:
- 输入参数
expr3
大于0
时,输出结果为截取从左往右数第expr3
个分隔符之前的字符串; - 输入参数
expr3
等于0
时,输出结果为空字符串; - 输入参数
expr3
小于0
时,输出结果为截取从右往左数第expr3
个分隔符之后的字符串; - 输入参数
expr3
的绝对值大于源字符串中的分隔符个数以及源字符串中未找到制定分隔符时,输出结果为源字符串。
示例
sql
-- 截取第二个','分隔符之前的字符串
SQL> SELECT SUBSTRING_INDEX('abc,def,ghi,jkl', ',', 2) FROM dual;
+---------+
| EXPR1 |
+---------+
| abc,def |
+---------+