一张表如下 c1 c2
1 B1210,B1211,B1212;50,100,75;BOX,BOX,BOX;100,200,150;KG,KG,KG'
2 B1220,B1221,B1222,B1223;50,100,75,60;BOX,BOX,BOX,BOX;100,200,150,100;KG,KG,KG,KG
3 B1120,B1121 ;50,100;BOX,BOX;100,200;KG,KG现在想转成: c1 编号 数量 包装 重量 单位
1 B1210 50 BOX 100 KG
1 B1211 100 BOX 200 KG
.
.
.
3 B1121 100 BOX 200 KG这仅仅是一部分示例数据, C2里面字符串里比如B1220,B1221,B1222,B1223 的个数都是不确定的。
所以我写了一个函数 去处理 返回一个结果集 但是结果集不可一做为一个字段,放在from 后面也是有问题的。有没有谁有解决办法?谢谢了
1 B1210,B1211,B1212;50,100,75;BOX,BOX,BOX;100,200,150;KG,KG,KG'
2 B1220,B1221,B1222,B1223;50,100,75,60;BOX,BOX,BOX,BOX;100,200,150,100;KG,KG,KG,KG
3 B1120,B1121 ;50,100;BOX,BOX;100,200;KG,KG现在想转成: c1 编号 数量 包装 重量 单位
1 B1210 50 BOX 100 KG
1 B1211 100 BOX 200 KG
.
.
.
3 B1121 100 BOX 200 KG这仅仅是一部分示例数据, C2里面字符串里比如B1220,B1221,B1222,B1223 的个数都是不确定的。
所以我写了一个函数 去处理 返回一个结果集 但是结果集不可一做为一个字段,放在from 后面也是有问题的。有没有谁有解决办法?谢谢了
解决方案 »
- 如何让无记录的行返回0?
- 对oracle的排序非常迷惑
- 如何写一个函数返回时间区间里的每一天
- 数据库中两个用户user1下的table1和user2下的table2,当table1发生变化时table也得变化
- 一个基础问题
- 如何在存储过程中 drop synonym?
- 如何实现下面的sql语法
- 在ORACLE库中,怎么判断字段的允许空字符串属性.
- oracle redolog的切换问题 Thread 1 cannot allocate new log
- oracle新增表问题
- ORACLE11g 我做了Create pfile from spfile;操作后,就无法找到SID了,我该如何做?
- imp导入遇到的问题 imp-00058 ora-00904
select '1' as str1,'B1220,B1221,B1222,B1223;50,100,75,60;BOX,BOX,BOX,BOX;100,200,150,100;KG,KG,KG,KG' as str2 from dual
)
select str1,
regexp_substr(str21, '\w+', 1, level) as str21,
regexp_substr(str22, '\w+', 1, level) as str22,
regexp_substr(str23, '\w+', 1, level) as str23,
regexp_substr(str24, '\w+', 1, level) as str24,
regexp_substr(str25, '\w+', 1, level) as str25
from (select str1,
max(decode(rn, 1, str)) as str21,
max(decode(rn, 2, str)) as str22,
max(decode(rn, 3, str)) as str23,
max(decode(rn, 4, str)) as str24,
max(decode(rn, 5, str)) as str25
from (select rownum as rn,
str1,
regexp_substr(str2, '[^;]+', 1, level) as str
from test
connect by level <= 5)
group by str1)
connect by regexp_substr(str21, '\w+', 1, level) is not null===========================================================
1 1 B1220 50 BOX 100 KG
2 1 B1221 100 BOX 200 KG
3 1 B1222 75 BOX 150 KG
4 1 B1223 60 BOX 100 KG