当前位置: 首页 > 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记录 点点关注不迷路 老铁们!!!!!

http://www.dtcms.com/a/137856.html

相关文章:

  • 【强化学习】#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表达式
  • 深度解析大屏软件及其优势
  • 零基础上手Python数据分析 (16):DataFrame 常用统计分析方法
  • 私人笔记:动手学大模型应用开发llm-universe项目环境创建
  • java 设计模式 策略模式
  • docker的基础知识
  • 微服务4--服务网关
  • 【Qt】常用显示类控件概述(Label、LCD Number、ProgressBar、Calendar Widget)
  • 用手机也能打《无畏契约》?登录ToDesk即可开玩
  • Edge 浏览器推出 Copilot Vision:免费实时解析屏幕内容;Aqua Voice:极速 AI 语音输入工具丨日报
  • Matter如何终结智能家居生态割据,重构你的居住体验?