本文介绍了如何使用Oracle数据库中的内置函数和PL/SQL代码将一个包含逗号分隔值的字符串转换成多行输出的方法。
不做详解,直接上图。
```sql
SELECT T.NAME, T.TESTSTR FROM TEST2 T;
```
```sql
SELECT DISTINCT T.NAME, REPLACE(REGEXP_SUBSTR(T.TESTSTR, [^,]+, 1, LEVEL), ,, ) AS TESTSTR
FROM TEST2 T
WHERE 1 = 1
CONNECT BY LEVEL <= (LENGTH(T.TESTSTR) - LENGTH(REPLACE(T.TESTSTR, ,, )) + 1);
```
-- 创建表TEST2
```sql
CREATE TABLE TEST2 (
-- 表的字段定义这里省略,根据实际需要添加
);
```