详细描述 SELECT REGEXP_SUBSTR('123-456-789', '(?:\d+)-(?:\d+)-(?:\d+)') FROM dual 中的错误
时间: 2024-06-04 17:13:59 浏览: 24
该语句没有错误,它的作用是从字符串 '123-456-789' 中提取出符合正则表达式 '(?:\d )-(?:\d )-(?:\d )' 的子字符串,其中 '\d' 表示任意数字,'?:' 表示非捕获分组。该正则表达式表示匹配三个数字,它们之间用 '-' 分隔。最后该语句会返回匹配的子字符串 '123-456-789'。
相关问题
在oracle中使用regexp_substr函数将‘123-456-789'提取出来
可以使用以下SQL语句实现:
```
SELECT REGEXP_SUBSTR('123-456-789', '[0-9]+', 1, 1) AS result FROM dual;
```
解释:
- REGEXP_SUBSTR:正则表达式提取函数。
- '123-456-789':需要提取的字符串。
- '[0-9]+':正则表达式模式,表示匹配一个或多个数字。
- 1:开始搜索的位置,从1开始。
- 1:表示匹配模式的第一个子表达式。
执行以上SQL语句,将会返回结果:
```
result
-------
123
```
在oracle中使用regexp_substr函数将‘123-456-789'中所有的数字提取出来
可以使用以下语句:
SELECT regexp_substr('123-456-789', '\d+', 1, level) AS num
FROM dual
CONNECT BY regexp_substr('123-456-789', '\d+', 1, level) IS NOT NULL;
解释一下:
- regexp_substr是Oracle中用于正则表达式匹配的函数。
- '\d+'表示匹配一个或多个数字。
- level是用于生成多行结果的伪列,可以从1开始递增。
- CONNECT BY是Oracle中用于生成多行结果的关键字,可以用于生成指定行数的数据。
因此,以上语句会从'123-456-789'中提取所有的数字,每个数字占一行。输出结果如下:
NUM
---
123
456
789
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)