Kir*_*tev 0 sql oracle plsql oracle9i
家伙.说我有下表:
ID | String
---+---------
1 | <123><345>
2 | <1-2><45-67>
3 | <345-321><234>
Run Code Online (Sandbox Code Playgroud)
这是我的应用程序中的遗留数据格式,目前无法避免.我需要做的是:
ID | String
---+---------
1 | <123>
1 | <345>
2 | <1-2>
2 | <45-67>
3 | <345-321>
3 | <234>
Run Code Online (Sandbox Code Playgroud)
有关如何在不创建任何其他对象或pl-sql过程的情况下仅使用普通Oracle SQL获得此结果的任何建议?
谢谢.
select id, string
,substr(string, instr(string, '<', 1, element_number)
,instr(string, '>', 1, element_number) - instr(string, '<', 1, element_number) + 1) result
from test
cross join
(
select level element_number from dual connect by level <=
(select max(length(string) - length(replace(string, '<', null))) max_elements from test)
) extra_rows
where element_number <= length(string) - length(replace(string, '<', null))
order by id, element_number;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3924 次 |
| 最近记录: |