oracle 分隔符行转列,Oracle 中使用 Regexp_substr 和 Connect By 来根据分隔符进行列转行操作示例...
先查询出数据库中记录
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 来根据分隔符进行列转行操作示例...相关推荐
- oracle存储过程行转列,oracle 存储过程-动态行转列,解决。
create or replace package body pro_test isprocedure Alarm_ContentsByTime( p_StartTime varchar2,----开 ...
- oracle中创建函数行变列,oracle decode 函数实现行转列
用decode函数,或者case when实现行转列 Oracle ----创建测试表create table student_score( name varchar2(20), subject va ...
- Oracle SQL 行转列,pivot函数和unpivot函数
转:Oracle行转列,pivot函数和unpivot函数 - waynelo - 博客园 (cnblogs.com) pivot函数:行转列函数: 语法:pivot(任一聚合函数 for 需专列的值 ...
- unpivot行转列 oracle,Oracle列转行_unpivot
Oracle列转行_unpivot 在实际业务开发环境中,我们经常会遇到要对查询的数据集进行列转行的需求.那么Oracle是如何实现的呢?本文也将通过几个实例来详细讲解一下. Oracle列转行 Or ...
- Oracle 实现行转列的几种方法
Oracle 实现行转列的几种方法 表数据 1 使用 decode 与聚合函数实现 2 使用 case when 与聚合函数实现 3 使用 pivot 函数 表数据 with students as( ...
- oracle系列–行转列、列转行
oracle行转列.oracle列转行 以及 mysql列转行,mysql行转列 文章目录 前言 一.oracle:逗号分隔的一列转行 二.oracle:多列转行 unpivot 函数 三.oracl ...
- linux awk 某一列合并,利用shell中awk和xargs以及sed将多行多列文本中某一列合并成一行...
一.问题描述 最近需要利用Shell将多行多列文本中某一列,通过指定的分隔符合并成一行.假设需要处理的文本如下: 我们主要处理的是,将用户名提取处理,合并成一行,并通过逗号进行分隔.最终的格式如下: ...
- 求赌王的密码 【问题描述】 赌王喜欢“A”,密码由6行6列扑克牌中每行“A”的位置数字组合而成。扑克牌点数由1~9,J,Q,K,A组成,每行的扑克牌中最多只能出现一次“A”;也可能没有“A”,
题头的话:长按点赞可私我赠送50+本C与C++书籍电子书资源 求赌王的密码 [问题描述] 赌王喜欢"A",密码由6行6列扑克牌中每行"A"的位置数字组合而成.扑 ...
- oracle+行换列,Oracle的数据表中行转列与列转行的操作实例讲解
行转列一张表 查询结果为 --行转列 select years,(select amount from Tb_Amount as A where month=1 and A.years=Tb_Amou ...
最新文章
- 送40本书,人人有份!
- 10个具体项目生动精彩讲述JavaScript;超级Web应用,构建不再困难
- Python基础知识(五)--数据类型
- linux交换空间使用率,linux编程系统中交换空间的使用情况
- android万年历有什么作用,基于android的万年历农历怎么算
- 微信小程序 与后台服务器交互,微信小程序 与后台交互----传递和回传时间
- 电源功耗压力测试软件,开关电源负载测试经验分享——这篇三分钟小文章着实令人“心动”...
- Oracle--plsql异常处理
- 【Python】sys库介绍
- π-Algorithmist分类题目(1)
- 关于sql注入漏洞的挖掘及渗透工具简介
- bat脚本 - 通过bat脚本一键启动[开机启动]日常应用
- C语言查表法实现CRC-32计算IEEE 802.3标准
- 浙江农林大学计算机分数线,浙江农林大学各专业录取分数线
- node.js中express框架的使用
- php图书馆注册模板,php微信公众号开发之校园图书馆
- 书写台灯哪种比较适合儿童?盘点护眼的儿童读写台灯推荐
- STANet简单介绍
- 计算机通讯技术的专业有哪些,通信类包括哪些专业
- inurl_inurl,intitle指令的含义、作用及用法
热门文章
- 【Python】过拟合解决
- MySQL忘记密码怎么办?MySQL修改密码(简单有效哦)
- 襄阳职业技术学院计算机专业宿舍,襄阳职业技术学院宿舍条件,宿舍图片和环境空调及分配方法...
- 计算机底层存储,图引擎底层存储的设计与实现-计算机工程.PDF
- 数智洞见 | 你买基金了吗?聊聊标签画像在基金行业的应用
- MP算法与OMP算法讲解二
- 二进制乘法的底层实现
- Python Web学习笔记之TCP/IP协议原理与介绍
- ip:在因特网里面区分主机的唯一标识
- bzoj4883 [Lydsy1705月赛]棋盘上的守卫 最小生成环套树森林