将带分隔符的一行分为多行
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,今天遇到一个没做过的需求,要把带分隔符的一行多列数据按分隔符分为多行多列插入另个表,同时别的列保持不变,想了一会感觉变化后的数据比较难和变化前的关联起来,网上看了下几个案例,感觉:https://bl
千家信息网最后更新 2025年01月31日将带分隔符的一行分为多行今天遇到一个没做过的需求,要把带分隔符的一行多列数据按分隔符分为多行多列插入另个表,同时别的列保持不变,想了一会感觉变化后的数据比较难和变化前的关联起来,网上看了下几个案例,感觉: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安全错误
数据库的锁怎样保障安全
四川成都dns服务器虚拟主机
删除数据库的命令关键词是什么
跳一跳软件开发难吗
众信网和网络技术有限公司
服务器名字大全100个
软件开发商的责任
必发数据库
服务器冗余硬盘
网络安全的作文怎么写600字
符欲梅计算机网络技术课后答案
网络安全审查办啥时候结束
记 网络技术中心
工业互联网光弘科技
网络安全我有责军旅题材
网络安全知识内容手抄报五年级
数据库技术支持的语言
9i数据库迁移10g
天津hp服务器虚拟化迁移服务器
软件开发著作劳动合同
高碑店软件开发文档
删除数据库的命令关键词是什么
安美酒店网络安全
内生式 网络安全
网络技术部工作
招一个软件开发团队
全国大学生网络安全知识答案
怀柔区进口软件开发单价
临淄租房软件开发
高频交易软件开发需求
深圳泰为软件开发公司