一个表的数据如下:
WID WEEK TIMET NAME
SYS_GUID() ,1,2,3,4,5 a0506 JIM
SYS_GUID() ,1,3,5 a091011 TOM
现在需要拆分并插入另外一张表,表结构和上面的一样,希望获得的结果是:
WID WEEK TIMET NAME
SYS_GUID() 1 05 JIM
SYS_GUID() 2 05 JIM
SYS_GUID() 3 05 JIM
SYS_GUID() 4 05 JIM
SYS_GUID() 5 05 JIMSYS_GUID() 1 06 JIM
SYS_GUID() 2 06 JIM
SYS_GUID() 3 06 JIM
SYS_GUID() 4 06 JIM
SYS_GUID() 5 06 JIMSYS_GUID() 1 09 TOM
SYS_GUID() 3 09 TOM
SYS_GUID() 5 09 TOMSYS_GUID() 1 10 TOM
SYS_GUID() 3 10 TOM
SYS_GUID() 5 10 TOMSYS_GUID() 1 11 TOM
SYS_GUID() 3 11 TOM
SYS_GUID() 5 11 TOM就是根据WEEK和TIMET来拆分,WEEK x TIMET交叉着拆分。TIMET前面字母a的不需要截取的,a后面的2位为一个数,比如a0102,实际上就是01和02。有哪位大侠帮我写一点存储过程,小弟新手,水平太差,谢谢
WID WEEK TIMET NAME
SYS_GUID() ,1,2,3,4,5 a0506 JIM
SYS_GUID() ,1,3,5 a091011 TOM
现在需要拆分并插入另外一张表,表结构和上面的一样,希望获得的结果是:
WID WEEK TIMET NAME
SYS_GUID() 1 05 JIM
SYS_GUID() 2 05 JIM
SYS_GUID() 3 05 JIM
SYS_GUID() 4 05 JIM
SYS_GUID() 5 05 JIMSYS_GUID() 1 06 JIM
SYS_GUID() 2 06 JIM
SYS_GUID() 3 06 JIM
SYS_GUID() 4 06 JIM
SYS_GUID() 5 06 JIMSYS_GUID() 1 09 TOM
SYS_GUID() 3 09 TOM
SYS_GUID() 5 09 TOMSYS_GUID() 1 10 TOM
SYS_GUID() 3 10 TOM
SYS_GUID() 5 10 TOMSYS_GUID() 1 11 TOM
SYS_GUID() 3 11 TOM
SYS_GUID() 5 11 TOM就是根据WEEK和TIMET来拆分,WEEK x TIMET交叉着拆分。TIMET前面字母a的不需要截取的,a后面的2位为一个数,比如a0102,实际上就是01和02。有哪位大侠帮我写一点存储过程,小弟新手,水平太差,谢谢
with t as
(
select 'SYS_GUID()' wid,',1,2,3,4,5' week,'a0506' timet,'jim' name from dual union all
select 'SYS_GUID()' wid,',1,3,5' week,'a091011' timet,'TOM' name from dual
)select distinct wid,week,substr(timet,2*level,2) timet,name
from
(
select wid,substr(week,2*level,1) week,timet,name
from t
connect by level < length(week)/2+1
)
connect by level < length(timet)/2
order by timet
wid week timet name
----------------------------------------------------
1 SYS_GUID() 1 05 jim
2 SYS_GUID() 2 05 jim
3 SYS_GUID() 3 05 jim
4 SYS_GUID() 4 05 jim
5 SYS_GUID() 5 05 jim
6 SYS_GUID() 1 06 jim
7 SYS_GUID() 2 06 jim
8 SYS_GUID() 3 06 jim
9 SYS_GUID() 4 06 jim
10 SYS_GUID() 5 06 jim
11 SYS_GUID() 1 09 TOM
12 SYS_GUID() 3 09 TOM
13 SYS_GUID() 5 09 TOM
14 SYS_GUID() 1 10 TOM
15 SYS_GUID() 3 10 TOM
16 SYS_GUID() 5 10 TOM
17 SYS_GUID() 1 11 TOM
18 SYS_GUID() 3 11 TOM
19 SYS_GUID() 5 11 TOM