oracle字符串清洗、拆分案例
oracle字符串清洗、拆分案例
需求描述
需求: 对给定的字符,按照点号对其进行拆分并以表的形式返回结果。
解决方法:通过 translate,结合自定义自增表、SUBSTR来实现字符串拆分。
SQL 代码
SELECT IDNO,MON,TO_DATE(MON,'YYYYMM') New_Day,SYSDATE-365*3 FROM
(SELECT i_year,IDNO,SUBSTR(ID,1,b.lv),b.lv,INSTR(ID,',',1,b.lv)-1,CASE WHEN b.lv = 1 THEN i_year||SUBSTR(ID,1,INSTR(ID,',',1,b.lv)-1)WHEN b.lv = t.LEN THEN i_year||SUBSTR(ID,INSTR(ID,',',1,b.lv-1)+1,LENGTH(ID)) WHEN b.lv > 1 AND b.lv<t.LEN THEN i_year||SUBSTR(ID,INSTR(ID,',',1,b.lv-1)+1,INSTR(ID,',',1,b.lv)-INSTR(ID,',',1,b.lv-1)-1 ) END monFROM (SELECT i_year,i_new_date,TRIM(',' from i_new_date) ID,LENGTH(TRIM(',' from i_new_date))-LENGTH(REPLACE(TRIM(',' from i_new_date),',',''))+1 LEN,IDNO FROM(SELECT A.*,SUBSTR(longvarchar,1,4) i_year,SUBSTR(longvarchar,5,LENGTH(longvarchar)) i_date,REPLACE(translate(SUBSTR(TRIM(longvarchar),5,LENGTH(longvarchar)),'.,、~- ','######'),'#',',')i_new_dateFROM test_table A)BWHERE IDNO = '12345678')t,(select level lv from dual connect by level < 13) bwhere b.lv <=t.LEN )AWHERE TO_DATE(MON,'YYYYMM') > SYSDATE-365*3
数据示例
源数据示例:
IDNO |
longvarchar |
12345678 |
2016.1.2.4. |
1234567 |
.2015.1.2.4. |
123456 |
.2014.1.2.4 |
结果示例:
IDNO | I_year | longvarchar |
12345678 | 2016 | 1 |
12345678 | 2016 | 2 |
12345678 | 2016 | 4 |
oracle字符串清洗、拆分案例相关推荐
- oracle sql字符拆分字符串函数,oracle-是否有在PL / SQL中拆分字符串的功能?
oracle-是否有在PL / SQL中拆分字符串的功能? 我需要编写一个过程来规范具有由一个字符连接的多个令牌的记录. 我需要获得这些令牌来分割字符串,并将每个令牌作为新记录插入表中. Oracle ...
- Oracle字符串拆分
文章目录 Oracle字符串拆分 1. 使用regexp_substr()函数 1.1 拆分aaa,bbb,ccc 1.2 拆分aaa;bbb;ccc 1.3 level作用 2. 在oracle中实 ...
- oracle pl sql示例,oracle PL SQL学习案例(一)
oracle PL SQL学习案例(一) [示例1.1] 查询雇员编号为7788的雇员姓名和工资. 步骤1:用SCOTT/TIGER账户登录SQL*Plus. 步骤2:在输入区输入以下程序: /*这 ...
- oracle字符串提取函数,oracle字符串分割和提取函数定义
oracle字符串分割和提取函数定义 oracle字符串分割和提取 分割 create or replace function Get_StrArrayLength ( av_str varchar2 ...
- ORACLE 字符串超长问题解决方案
ORACLE 字符串超长问题解决方案 参考文章: (1)ORACLE 字符串超长问题解决方案 (2)https://www.cnblogs.com/joker-zhao/p/4893399.html ...
- python字符串截取split-python实现字符串完美拆分split()的方法
函数:split() 例子 我们想要将以下字符串rule进行拆分.字符串表示的是一个规则,由"-"得到"-".我们需要将规则中的条件属性与取值分别提取出来,存放 ...
- python查找字符串关键词_Python字符串查找基本操作案例解析
本篇文章小编给大家分享一下Python字符串查找基本操作案例解析,文章介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 字符串查找基本操作主要分为三个关键词:fi ...
- dataguru北京线下沙龙-第二部 《Oracle 索引优化思路--案例分享 -- 刘盛》
[视频:dataguru北京线下沙龙-第二部 <Oracle 索引优化思路--案例分享 -- 刘盛> /微笑]
- oracle截取字符串替换,oracle字符串操作:拼接、替换、截取、查找
'拼接'||'字符串' as Str from student; 2.使用concat(param1,param2)函数实现: select concat('拼接','字符串') as Str fro ...
最新文章
- CVPR 2021 顶会冠军图像分割算法全解密
- python文档字符串_结构化的python文档字符串,对IDE友好
- 33岁逃离北京,看到的是希望还是悲剧呢?
- 200919阶段一C++STL容器
- linux下mysql的数据库简单备份脚本
- Java集合之LinkedList
- 字节跳动1/3员工不支持取消大小周!库克称iPhone将采用可回收材料生产;清华博士接亲被要求现场写代码|极客头条...
- CSS设计指南(第3版)
- 【PHP面向对象(OOP)编程入门教程】18.__call()处理调用错误
- VISIO——word中插入visio图片 图片边缘空白裁剪
- 海康威视摄像头web端开发
- 华为手机屏幕锁屏时间设置_华为手机锁屏时间怎么设置?
- 计算机考证要考PS吗
- pacman入门使用指南
- 比较结构的关联词(二)
- oracle分区缺点,ORACLE的五种表的优缺点概述
- PHP 规则引擎 Hoa\Ruler
- 打印机显示无法连接计算机,网络打印提示:Windows无法连接到打印机,请检查打印机名并重试...
- 用计算机算出手机密码,怎么才能把计算机开机的密码解开
- Ubuntu下安装Moodle平台
热门文章
- wxWidgets:wxScopedCharTypeBuffer< T >类模板用法
- wxWidgets:wxHelpController类用法
- wxWidgets:wxAppConsole类用法
- BOOST_VMD_ASSERT_IS_SEQ宏相关的测试程序
- boost::fusion::iterator_range用法的测试程序
- boost::fusion::for_each用法的测试程序
- GDCM:gdcm::GroupDict的测试程序
- boost::contract模块实现非成员函数的测试程序
- DCMTK:OFerror_code的测试程序
- VTK:可视化之SideBySideViewports