您的位置:首页 > 汽车 > 时评 > 怎样做平台推广_ppt模板官网_电商数据分析_河南百度seo

怎样做平台推广_ppt模板官网_电商数据分析_河南百度seo

2025/4/29 20:44:12 来源:https://blog.csdn.net/CSDN_LiMingfly/article/details/147304416  浏览:    关键词:怎样做平台推广_ppt模板官网_电商数据分析_河南百度seo
怎样做平台推广_ppt模板官网_电商数据分析_河南百度seo

前言
由于本人sql比较薄弱 将一些常用又使用的sql语句记录与大家分享
一:替换特殊字符分割的字符串
需求如下:
有张原始表tschedule 和新表bjcodechange ,需要将原始表的compeny_code字段和bjcodechange 的oldwindcode 进行关联替换成bjcodechange表的newwindcode字段
无特殊字符的查询很简单 如下


UPDATE tschedule  tsSET ts.security_code =(SELECT bj.newwindcodeFROM BJcodechange bjWHERE ts.security_code = bj.oldwindcode)WHERE EXISTS (SELECT 1FROM BJcodechange bjWHERE ts.security_code = bj.oldwindcode);

但是有特殊字符的数据如下 注意测试原始表的compeny_code字段的内容许如下所示
tschedule:

namecompeny_code
张三000001
李四800981,000001,000002

bjcodechange:

oldwindcodenewwindcode
800981888888

最终的效果如下

namecompeny_code
张三000001
李四888888 ,000001,000002

完整步骤
步骤1:拆分后的中间数据 (split_data)

ridelemord
OKABKyAAA2AAAAiTAAD0000011
OKABKyAAA2AAAAiTAAD8009812
OKABKyAAA2AAAAiTAAD0000013
AABKyAAA2AAAAiTAAD0000021
步骤2:关联后的中间数据
ridelemnewwindcode
-------------------------------------------
OKABKyAAA2AAAAiTAAD430017920017
OKABKyAAA2AAAAiTAAD000001(null)
OKABKyAAA2AAAAiTAAD430017920017
AABKyAAA2AAAAiTAAD000001(null)
步骤3:聚合后的结果 (merged)
ridnew_code
-------------------------------------------
OKABKyAAA2AAAAiTAAD920017,000001,920017
AABKyAAA2AAAAiTAAD000001
MERGE INTO tschedule a
USING (WITH split_data AS (SELECT a.rowid AS rid, regexp_substr(a.compeny_code, '[^,]+', 1, LEVEL) AS elem,LEVEL AS ordFROM tschedule aCONNECT BY LEVEL <= regexp_count(a.compeny_code, ',') + 1AND PRIOR a.rowid = a.rowidAND PRIOR DBMS_RANDOM.VALUE IS NOT NULL)SELECT rid,LISTAGG(NVL(b.newwindcode, elem), ',') WITHIN GROUP (ORDER BY ord) AS new_code FROM split_data sdLEFT JOIN bjcodechange b ON sd.elem = b.oldwindcode  GROUP BY rid
) merged
ON (a.rowid = merged.rid)
WHEN MATCHED THENUPDATE SET a.compeny_code = merged.new_code
WHERE a.compeny_code != merged.new_code;

好了 至此 oracle值sql记录 点点关注不迷路 老铁们!!!!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com