先查询出数据库中记录

select t.ID,t.存储名称,t.存储路径,t.上传人,t.上传时间 from zlmaindata.投标记录 t

以上为查询结果,我要将【存储名称】多文件名按照分号进行分割,然后转换为两行。

使用如下代码查询:

with t1 as(

select 存储名称 as c1,存储路径,上传人,上传时间

from zlmaindata.投标记录 where id='')

select distinct regexp_substr(t1.存储名称,'[^;]+',1,level) as 文件存储名称,t1.上传人,t1.上传时间,regexp_substr(相关附件,level) as 相关附件

from zlmaindata.投标记录

connect by level <= length(存储名称) - length(replace(存储名称,';',''));

查询结果如下:

根据结果看达到我的最初目的。

这里说一下这段的作用:

with t1 as(

select 存储名称 as c1,上传时间

from zlmaindata.投标记录 where id='')

with as 是先将需要进行操作的数据先查询出来创建一张虚拟表,后面的sql直接从虚拟表中取数据进行函数操作,避免了全表扫描,大大提高了查询转换效率。

以下是另外一个查询示例:

with t as (

select q.* from(

select rownum as 序号,y.ID as 记录ID,y.附件名,y.登记人,y.登记时间,y.附件路径

from zlmaindata.用户服务单 y

where y.附件名 is not null

and y.附件路径 is not null

) q

where q.序号 between 1 and 20

)

select distinct t.记录ID,regexp_substr(t.附件名,level) as 文件名,'客户服务' as 模块名称,t.登记人 as 上传人,t.登记时间 as 上传时间,level) as 存储名,t.附件路径 as 存储路径

from t

connect by level <= length(t.附件名) - length(replace(t.附件名,''))

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

oracle 分隔符行转列,Oracle 中使用 Regexp_substr 和 Connect By 来根据分隔符进行列转行操作示例...相关推荐

  1. oracle存储过程行转列,oracle 存储过程-动态行转列,解决。

    create or replace package body pro_test isprocedure Alarm_ContentsByTime( p_StartTime varchar2,----开 ...

  2. oracle中创建函数行变列,oracle decode 函数实现行转列

    用decode函数,或者case when实现行转列 Oracle ----创建测试表create table student_score( name varchar2(20), subject va ...

  3. Oracle SQL 行转列,pivot函数和unpivot函数

    转:Oracle行转列,pivot函数和unpivot函数 - waynelo - 博客园 (cnblogs.com) pivot函数:行转列函数: 语法:pivot(任一聚合函数 for 需专列的值 ...

  4. unpivot行转列 oracle,Oracle列转行_unpivot

    Oracle列转行_unpivot 在实际业务开发环境中,我们经常会遇到要对查询的数据集进行列转行的需求.那么Oracle是如何实现的呢?本文也将通过几个实例来详细讲解一下. Oracle列转行 Or ...

  5. Oracle 实现行转列的几种方法

    Oracle 实现行转列的几种方法 表数据 1 使用 decode 与聚合函数实现 2 使用 case when 与聚合函数实现 3 使用 pivot 函数 表数据 with students as( ...

  6. oracle系列–行转列、列转行

    oracle行转列.oracle列转行 以及 mysql列转行,mysql行转列 文章目录 前言 一.oracle:逗号分隔的一列转行 二.oracle:多列转行 unpivot 函数 三.oracl ...

  7. linux awk 某一列合并,利用shell中awk和xargs以及sed将多行多列文本中某一列合并成一行...

    一.问题描述 最近需要利用Shell将多行多列文本中某一列,通过指定的分隔符合并成一行.假设需要处理的文本如下: 我们主要处理的是,将用户名提取处理,合并成一行,并通过逗号进行分隔.最终的格式如下: ...

  8. 求赌王的密码 【问题描述】 赌王喜欢“A”,密码由6行6列扑克牌中每行“A”的位置数字组合而成。扑克牌点数由1~9,J,Q,K,A组成,每行的扑克牌中最多只能出现一次“A”;也可能没有“A”,

    题头的话:长按点赞可私我赠送50+本C与C++书籍电子书资源 求赌王的密码 [问题描述] 赌王喜欢"A",密码由6行6列扑克牌中每行"A"的位置数字组合而成.扑 ...

  9. oracle+行换列,Oracle的数据表中行转列与列转行的操作实例讲解

    行转列一张表 查询结果为 --行转列 select years,(select amount from Tb_Amount as A where month=1 and A.years=Tb_Amou ...

最新文章

  1. 送40本书,人人有份!
  2. 10个具体项目生动精彩讲述JavaScript;超级Web应用,构建不再困难
  3. Python基础知识(五)--数据类型
  4. linux交换空间使用率,linux编程系统中交换空间的使用情况
  5. android万年历有什么作用,基于android的万年历农历怎么算
  6. 微信小程序 与后台服务器交互,微信小程序 与后台交互----传递和回传时间
  7. 电源功耗压力测试软件,开关电源负载测试经验分享——这篇三分钟小文章着实令人“心动”...
  8. Oracle--plsql异常处理
  9. 【Python】sys库介绍
  10. π-Algorithmist分类题目(1)
  11. 关于sql注入漏洞的挖掘及渗透工具简介
  12. bat脚本 - 通过bat脚本一键启动[开机启动]日常应用
  13. C语言查表法实现CRC-32计算IEEE 802.3标准
  14. 浙江农林大学计算机分数线,浙江农林大学各专业录取分数线
  15. node.js中express框架的使用
  16. php图书馆注册模板,php微信公众号开发之校园图书馆
  17. 书写台灯哪种比较适合儿童?盘点护眼的儿童读写台灯推荐
  18. STANet简单介绍
  19. 计算机通讯技术的专业有哪些,通信类包括哪些专业
  20. inurl_inurl,intitle指令的含义、作用及用法

热门文章

  1. 【Python】过拟合解决
  2. MySQL忘记密码怎么办?MySQL修改密码(简单有效哦)
  3. 襄阳职业技术学院计算机专业宿舍,襄阳职业技术学院宿舍条件,宿舍图片和环境空调及分配方法...
  4. 计算机底层存储,图引擎底层存储的设计与实现-计算机工程.PDF
  5. 数智洞见 | 你买基金了吗?聊聊标签画像在基金行业的应用
  6. MP算法与OMP算法讲解二
  7. 二进制乘法的底层实现
  8. Python Web学习笔记之TCP/IP协议原理与介绍
  9. ip:在因特网里面区分主机的唯一标识
  10. bzoj4883 [Lydsy1705月赛]棋盘上的守卫 最小生成环套树森林