oracle split函数用法
时间: 2023-06-23 20:45:06 浏览: 169
oracle split 函数
Oracle中没有split函数,但可以使用正则表达式或其他方法来实现字符串的拆分。以下是两种常用的方法:
1. 使用正则表达式函数REGEXP_SUBSTR
可以使用REGEXP_SUBSTR函数来提取字符串中的子串。例如,要将字符串'apple,orange,banana'按逗号分隔成三个子串,可以使用以下语句:
```
SELECT REGEXP_SUBSTR('apple,orange,banana', '[^,]+', 1, LEVEL) AS result
FROM dual
CONNECT BY LEVEL <= REGEXP_COUNT('apple,orange,banana', ',') + 1;
```
其中,[^,]+表示非逗号字符的一个或多个,1表示从第一个字符开始匹配,LEVEL为循环计数器,CONNECT BY LEVEL表示循环次数。执行结果如下:
```
result
------
apple
orange
banana
```
2. 使用CONNECT BY LEVEL和SUBSTR函数
可以使用CONNECT BY LEVEL和SUBSTR函数来实现字符串的拆分。例如,要将字符串'apple,orange,banana'按逗号分隔成三个子串,可以使用以下语句:
```
SELECT TRIM(SUBSTR(',' || 'apple,orange,banana', INSTR(',' || 'apple,orange,banana', ',', 1, LEVEL) + 1,
INSTR(',' || 'apple,orange,banana', ',', 1, LEVEL + 1) - INSTR(',' || 'apple,orange,banana', ',', 1, LEVEL) - 1)) AS result
FROM dual
CONNECT BY LEVEL <= REGEXP_COUNT('apple,orange,banana', ',') + 1;
```
其中,',' || 'apple,orange,banana'表示在字符串前添加一个逗号,INSTR函数用于查找逗号的位置,SUBSTR函数用于提取子串,TRIM函数用于去除子串两端的空格。执行结果如下:
```
result
------
apple
orange
banana
```
阅读全文