Oracle 中使用 Regexp_substr 和 Connect By 来根据分隔符进行列转行操作示例
来源:互联网 发布:windows几的系统最好 编辑:程序博客网 时间:2024/05/23 13:03
先查询出数据库中记录
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(相关附件, '[^;]+',1,level) as 相关附件from zlmaindata.投标记录 connect by level <= length(存储名称) - length(replace(存储名称,';',''));
根据结果看达到我的最初目的。
这里说一下这段的作用:
with t1 as( select 存储名称 as c1,存储路径,上传人,上传时间 from zlmaindata.投标记录 where id='')
以下是另外一个查询示例:
with t as (select q.* from(select rownum as 序号,y.ID as 记录ID,y.附件名,y.登记人,y.登记时间,y.附件路径 from zlmaindata.用户服务单 y where y.附件名 is not nulland y.附件路径 is not null) q where q.序号 between 1 and 20)select distinct t.记录ID,regexp_substr(t.附件名, '[^;]+',1,level) as 文件名,'客户服务' as 模块名称,t.登记人 as 上传人,t.登记时间 as 上传时间,regexp_substr(t.附件名, '[^;]+',1,level) as 存储名,t.附件路径 as 存储路径from t connect by level <= length(t.附件名) - length(replace(t.附件名,';',''))
0 0
- Oracle 中使用 Regexp_substr 和 Connect By 来根据分隔符进行列转行操作示例
- ORACLE列转行示例
- Oracle中使用connect by 来实现树状查询
- Oracle分隔字符串后输出(列转行)
- Oracle 使用connect by进行级联查询
- oracle中connect by和start with的使用
- oracle正则函数,regexp_substr,按分隔符单行转多行
- Oracle 列转行函数 Listagg()示例
- oracle行转列 和 列转行
- oracle 行转列和列转行
- Oracle 行转列和列转行
- Oracle行转列和列转行
- Oracle行转列和列转行
- Oracle行转列和列转行
- Oracle行转列和列转行
- oracle行转列和列转行
- oracle行转列和列转行
- Oracle行转列和列转行
- 第一次写博客
- 怎么使Handler净身出户(非静态内部类和匿名内部类造成内存泄漏)
- MySQL中concat函数(连接字符串)、concat_ws函数
- poj 3624 Charm Bracelet(0-1背包 DP)
- Android之Adapter用法总结
- Oracle 中使用 Regexp_substr 和 Connect By 来根据分隔符进行列转行操作示例
- git学习
- 求解偏微分方程开源有限元软件deal.II学习--Step 7
- STM32F407的外部中断设置_RCC_APB2PeriphClockCmd_RCC_APB2Periph_SYSCFG
- Android studio使用grdle打包
- WORD批量转图片助手v8.6最新版
- Unity Assetbundle的实战
- miniGui中创建多个子窗体及子窗体资源的回收
- 兼容ie8 的 rgba()用法