REGEXP_SUBSTR
📄字数 544
👁️阅读量 加载中...
功能描述
从字符串中提取符合正则表达式模式的子串。
语法格式
sql
REGEXP_SUBSTR(expr1,expr2[,expr3[,expr4[,expr5]]])输入参数
expr1:源字符串,可以是列名或者字符串常量、变量,VARCHAR类型。expr2:正则表达式,VARCHAR类型。expr3:可选参数,标识从第几个字符开始正则表达式匹配(默认为1),INTEGER类型。expr4: 可选参数,指定第几次匹配(默认为1),INTEGER类型。expr5:可选参数,匹配模式,VARCHAR类型,具体模式参考regexp_count。
输出结果
输出结果为VARCHAR类型,任意输入参数为NULL,输出结果为NULL。
执行类型
| TYPE | VALUE | 说明 |
|---|---|---|
| NATIVE | 0 | 函数只能在本地计算 |
| VOLATI | 0 | 函数的每次计算值不同 |
| STABLE | 0 | 函数的每次计算值相同 |
| COMPUTE | 0 | 函数支持预计算取值 |
| NOT_CONST | 0 | 函数不支持转常数 |
| HAVE_DEF | 0 | 函数参数有默认值 |
示例
SQL
-- 示例1:提取连续数字
SQL> SELECT REGEXP_SUBSTR('订单ID: 789, 数量: 456', '[0-9]+') FROM dual;
+-------+
| EXPR1 |
+-------+
| 789 |
+-------+
-- 示例2:从第5字符开始,取第2次匹配
SQL> SELECT REGEXP_SUBSTR('a1,b2,c3,d4', '[^,]+', 5, 2) FROM dual;
+-------+
| EXPR1 |
+-------+
| c3 |
+-------+