示例:
with temp as (select '1,2,3' nums, 'a' names from dual union all select '4,5' nums, 'b' names from dual union all select '6,7' nums, 'c' names from dual union all select '8' nums, 'c' names from dual union all select '9,10' nums, 'c' names from dual union all select '11,12' nums, 'c' names from dual union all select '13,14' nums, 'c' names from dual union all select '15,16' nums, 'c' names from dual union all select '17,18' nums, 'c' names from dual union all select '19,20' nums, 'c' names from dual union all select '21,22,23,24,25,26,27,28,29,30,31,32,33,34' nums, 'c' names from dual ) select regexp_substr(nums,'[^,]+',1,b.lv) order_num,names from temp, (select level lv from dual connect by level<=(select max(length(regexp_replace(nums,'[^,]+'))+1) from temp)) b --用於分配行數(行數取最大的nums分隔數) where b.lv <=length(regexp_replace(nums,'[^,]+'))+1 order by order_num