示例:with temp as (select '1,2,3' nums, 'a' names 
示例:
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
--结束END--
本文标题: oracle 批量列转行 逗号分隔
本文链接: https://lsjlt.com/news/40546.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0