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 |
+---------+