将带分隔符的一行分为多行
发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,今天遇到一个没做过的需求,要把带分隔符的一行多列数据按分隔符分为多行多列插入另个表,同时别的列保持不变,想了一会感觉变化后的数据比较难和变化前的关联起来,网上看了下几个案例,感觉:https://bl
千家信息网最后更新 2024年12月13日将带分隔符的一行分为多行今天遇到一个没做过的需求,要把带分隔符的一行多列数据按分隔符分为多行多列插入另个表,同时别的列保持不变,想了一会感觉变化后的数据比较难和变化前的关联起来,网上看了下几个案例,感觉: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安全错误
数据库的锁怎样保障安全
山东达振网络安全
网络安全的知识体系
电信网络安全比赛
喵闪网络技术
为个人软件开发服务的公司
公办网络技术专业技校
数据库计算逗号个数字
软件开发需要经常出差么
公安部如何使用网络安全
体育成绩上报到国家数据库
超市数据库设计实例
如何查看域名服务器
数据库父子关系查询慢
网络技术多冗余
app订制软件开发哪家好
上海天投网络技术有限公司
网络技术协会电路
国家通管局服务器异常请稍后再试
网络安全保密协议书个人签订
江西rpa软件开发公司
苹果迁移无法连接服务器
学软件开发编程要学什么
网络安全教育国主题班会
公办网络技术专业技校
aspenV11数据库不全
惠州步升网络技术公司
江西大专院校软件开发
数据库模拟题(8)
西电数据库技术与应用考试题
网络安全青年力量