【发布时间】:2017-04-27 12:28:28
【问题描述】:
我在不同的范围 (102,103,...) 中有几个逗号分隔的列表 (A,B,..):
SCOPE_ID LIST_NAME LIST_OF_NODES
102 list_A 02086,02087,02089,02131,02210,02211
102 list_B 00004,06003,06338
103 list_A 00705,02006,02017,02057,02085
103 list_B 09442,09443
...
我需要一个格式的表格:
SCOPE_ID LIST_NAME NODE_ID
102 list_A 02086
102 list_A 02087
102 list_B 00004
...
103 list_A 00705
103 list_A 02006
103 list_B 09442
...
我已经知道如何用逗号分隔 LIST_OF_NODES:
select SCOPE_ID, LIST_NAME, NODE_ID,
substr(NODE_ID,instr(NODE_ID,',',1,decode(level-1,0,1,level-1))-5,5) node
from (
select '102' SCOPE_ID,
'LIST_A' LIST_NAME,
'00705,02006,02017,02057,02085,02086,02087,02089,02131,02210,02211' NODE_ID
from dual )
connect by level<=regexp_count(NODE_ID,',')+2 ;
...但是如何为多个列表和范围做呢?
【问题讨论】:
标签: sql oracle recursion recursive-query connect-by