将带分隔符的一行分为多行
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,今天遇到一个没做过的需求,要把带分隔符的一行多列数据按分隔符分为多行多列插入另个表,同时别的列保持不变,想了一会感觉变化后的数据比较难和变化前的关联起来,网上看了下几个案例,感觉:https://bl
千家信息网最后更新 2025年11月14日将带分隔符的一行分为多行今天遇到一个没做过的需求,要把带分隔符的一行多列数据按分隔符分为多行多列插入另个表,同时别的列保持不变,想了一会感觉变化后的数据比较难和变化前的关联起来,网上看了下几个案例,感觉:https://blog.csdn.net/mchdba/article/details/51946573 的方法比较不错,
例如源数据是这样
目标数据是这样

insert语句为:
insert into temp_0428_test2(pro_key,nip)
with temp0 as
(select LEVEL lv from dual CONNECT BY LEVEL <= 100)
select pro_key, substr(t.vals, instr(t.vals, ',', 1, tv.lv) + 1, instr(t.vals, ',', 1, tv.lv + 1) - (instr(t.vals, ',', 1, tv.lv) + 1)) AS name
from (select pro_key,
',' || nip || ',' AS vals,
length(nip || ',') - nvl(length(REPLACE(nip, ',')), 0) AS cnt
from temp_0428_test1) t
join temp0 tv
on tv.lv <= t.cnt
order by 1;
这个方法不用和rownum做关联,避免了rownum增长后不能重置为1导致数据有缺失的问题
例如源数据是这样
目标数据是这样

insert语句为:
insert into temp_0428_test2(pro_key,nip)
with temp0 as
(select LEVEL lv from dual CONNECT BY LEVEL <= 100)
select pro_key, substr(t.vals, instr(t.vals, ',', 1, tv.lv) + 1, instr(t.vals, ',', 1, tv.lv + 1) - (instr(t.vals, ',', 1, tv.lv) + 1)) AS name
from (select pro_key,
',' || nip || ',' AS vals,
length(nip || ',') - nvl(length(REPLACE(nip, ',')), 0) AS cnt
from temp_0428_test1) t
join temp0 tv
on tv.lv <= t.cnt
order by 1;
这个方法不用和rownum做关联,避免了rownum增长后不能重置为1导致数据有缺失的问题
数据
分隔符
感觉
方法
关联
变化
一行
多行
不错
不用
同时
案例
目标
缺失
语句
问题
需求
增长
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
文件服务器端口设置
留园网代理服务器
南通网络安全哪家公司好
济南硬盘软件开发公司
软件开发员工述职报告
天津蓝信软件开发有限公司
以太坊私有链云服务器
奉贤区手机软件开发项目
群晖服务器硬盘位
口碑好软件开发制作
服务器down机可以远程解决吗
住建部数据库
sql语句建立数据库
服务器获取安全管理权限
软件开发工作室起什么名字好
免费征婚软件开发
小学师生网络安全教育宣传
软件开发大二能考什么证
网络安全英语作文高一博文
网络安全 登录不了政府网站
计算机网络技术跟软件设计
科技互联网汇
python数据库连接失败失败
无线网络安全包括哪几个方面
网络技术图片素材
移动软件开发学什么条件
nginx部署代理服务器
vs2012数据库使用
国土三调调查数据库结构
威纶触摸屏配方数据库传送