【Oracle】列拆行/对多行数据的单行数据进行分割并多行显示
【Oracle】列拆行/对多行数据的单行数据进行分割并多行显示
参考链接:Oracle 一行字符串拆分为多行_oracle一行拆分成多行-CSDN博客
背景:要对一个表的字段的内容进行分割,分隔符都是指定的
原数据:
| '1','2','3','4' |
|---|
| '5','6','7','8' |
新数据(按照逗号分割):
| '1' |
|---|
| '2' |
| '3' |
| '4' |
| '5' |
| '6' |
| '7' |
| '8' |
如果是单行的数据,一般习惯用下面的语句进行分割
select tt.ll
from (select regexp_substr(replace(XXX, ',', ' ,'), '[^,]+', 1, level) ll
from dual
connect by level <= regexp_count(XXX, ',') + 1) tt
where rownum <= regexp_count(XXX, ',') + 1
但是这种语句只能对单行数据进行操作
上网找了一下,可以用下面的语句进行多行分割
select a.*,
level lev,
regexp_count(a.code,'[^,]+') as regcou,
regexp_substr(a.code,'[^,]+',1,level) as new_col
from tablea a
connect by prior a.id = a.id
and prior dbms_random.value is not null
and level <= regexp_count(a.code,'[^,]+')
tablea中的源数据:

数据结果:

比较让人在意的是这句prior dbms_random.value is not null,好像目的是为了让这个随机数每次都输出不同的数据,防止ORACLE的检查:如果你有前后连接条件(id=PRIOR id),但是同一行数据再次出现,会报错
ERROR:ORA-01436: CONNECT BY loop in user data
加了这句以后就不会有报错提示了
【Oracle】列拆行/对多行数据的单行数据进行分割并多行显示的更多相关文章
- pandas 一行文本拆多行,一列拆多列
https://zhuanlan.zhihu.com/p/28337202 一列拆多列: http://blog.csdn.net/qq_22238533/article/details/761875 ...
- oracle ORA-01427: 单行子查询返回多个行
ORA-01427: 单行子查询返回多个行 前几天开发的同事反馈一个问题,说前台系统报出了ORA错误,希望我们能看看是什么原因.java.sql.SQLException: ORA-01427: si ...
- 使用cmd命令行方式登录ftp上传下载数据
部分用户在使用ftp工具登录空间上传下载过程中经常会遇到各种问题,如主动模式,被动模式,以及其他导致无法登陆ftp .上传数据.下载数据的问题,这时候不妨使用一下命令行方式.命令行下可以避免很多由于f ...
- linux向文件中添加数据,数据被追加到了上一行的行尾
当我们在windows上新建了文件,并且要上传到linux上时,一定要在文件后加上空格,否则就会出现标题上讲的,数据被追加到了上一行的行尾,而不是新起一行,但是如果是在linux上新建的文件,则没有这 ...
- oracle列合并
在很多场合,我们会须要用到oracle列合并,oracle提供了一些方法用于把某列的多行数据合并成一行. 一.10G曾经使用WMSYS.WM_CONCAT wmsys.wm_concat将字段的值 ...
- Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象
作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...
- Oracle 检索数据(查询数据、select语句)
用户对表或视图最常进行的操作就是检索数据,检索数据可以通过 select 语句来实现,该语句由多个子句组成,通过这些子句完成筛选.投影和连接等各种数据操作,最终得到想要的结果. 语法: select ...
- ORACLE体系结构逻辑结构-表空间、段、区和数据块
转自: https://www.cnblogs.com/sunziying/p/8994792.html 一.Oracle的逻辑结构 Oracle的逻辑结构是一种层次结构.主要由:表空间.段.区和数据 ...
- Oracle 删除数据后释放数据文件所占磁盘空间
测试的时候向数据库中插入了大量的数据,测试完成后删除了测试用户以及其全部数据,但是数据文件却没有缩小.经查阅资料之后发现这是 Oracle “高水位”所致,那么怎么把这些数据文件的大小降下来呢?解决办 ...
- Oracle 中用一个表的数据更新另一个表的数据
Oracle 中用一个表的数据更新另一个表的数据 分类: SQL/PLSQL2012-05-04 15:49 4153人阅读 评论(1) 收藏 举报 oraclemergesubqueryinsert ...
随机推荐
- 市场主流的G-sensor芯片盘点
一 前记 1.简介 随着可穿戴智能硬件的广泛发展,G-sensor成了一个必不可少的器件.梳理,测试和运用这些传感器.是做可穿戴产品必不可少的环节. 二 产品解析 1.ST的G-sensor型号LIS ...
- javascript import maps 特性现已被全部主流浏览器支持
值得庆祝 Import maps 特性现在可以在全部三个主要浏览器内使用 现在主流现代web 应用 引入和利用javascript 是通过 Es module 模块实现. 在开发javascript上 ...
- 新服务器搭建docker跑mysql+java项目
参考:https://js.work/posts/1362ba443b35d(yum安装java17) 踩了两个坑,一个前面的conf文件里监听80的配置没有删除掉,一个项目配置里面的路径还在用服务器 ...
- 【atcoder abc276 】(a* 搜索)
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- vue2(脚手架、组件)
2.1 脚手架 使用前置: 第一步(没有安装过的执行):全局安装 @vue/cli npm install -g @vue/cli 第二步:切换到要创建项目的目录,然后使用命令创建项目 vue cre ...
- linux查看域名对应的解析ip
方法1-直接使用ping 方法2-nslookup 方法3-dig
- System design summary
system design https://github.com/donnemartin/system-design-primer Performance vs scalability scalabi ...
- 使用现代身份验证(OAuth)调用 EWS 服务
我的博客园:https://www.cnblogs.com/CQman/ 转载: https://mp.weixin.qq.com/s?__biz=MzU0MzUxMzU2NA==&mid=2 ...
- 记录--Uni-app接入腾讯人脸核身
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 人脸核身功能有多种接入方式,其中包含微信H5.微信小程序.APP.独立H5.PC端.API接入6种方式. 我们的产品是使用uni-ap ...
- 从零开始的 dbt 入门教程 (dbt cloud 自动化篇)
一.引 在前面的几篇文章中,我们从 dbt core 聊到了 dbt 项目工程化,我相信前几篇文章足够各位数据开发师从零快速入门 dbt 开发,那么到现在我们更迫切需要解决的是如何让数据更新做到定时化 ...