当前位置: 首页 > news >正文

oracle值sql记录

前言
由于本人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记录 点点关注不迷路 老铁们!!!!!

相关文章:

  • 【强化学习】#2 有限马尔可夫决策过程
  • TQTT_KU5P开发板教程---千兆以太网传输测试
  • Oracle补丁安装工具opatch更新报错处理
  • AI 对话高效输入指令攻略(二):关于豆包的指令
  • vscode vue个别文件不显示折叠标记
  • TCP/UDP与线程进程全解析:从原理到实战
  • ESP32-idf学习(一)搭建环境和点灯
  • 【python】pyCharm常用快捷键使用-(2)
  • 解决:VSCode C++ conan 安装第三方库后 头文件报错
  • 急性肠胃炎药物清单:甲氧氯普胺、蒙脱石散、诺氟沙星怎么用?
  • 【HarmonyOS NEXT+AI】问答 03:找不到 DevEco Studio Cangjie Plugin 下载链接?
  • Python 之count()报错
  • javaSE————网络编程套接字
  • Linux 固定IP地址
  • 通义灵码 Rules 库合集来了,覆盖Java、TypeScript、Python、Go、JavaScript 等
  • 实时数据处理的革命:Apache Flink 在大数据流处理中的应用
  • SpringBoot项目动态加载jar 实战级别
  • MATLAB 控制系统设计与仿真 - 34
  • 2000-2017年各省国有经济煤气生产和供应业固定资产投资数据
  • 数据结构——反射、枚举以及lambda表达式
  • 网站开发文档/青岛seo精灵
  • 做pc端网站必知/郑州网络推广大包
  • wordpress文章点开是个新网页/宁波seo推荐推广平台
  • wordpress admin plugin/广州seo推荐
  • 珠海网站建设兼职/公司个人怎么做网络推广
  • 烟台建设局网站/无锡百度竞价推广