【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 ...
随机推荐
- 什么是docker的多阶段构建
Docker多阶段构建是一种技术,允许在不同的构建阶段中使用不同的基础镜像,并只复制构建所需的文件和依赖项.这种技术旨在减少最终生成的Docker镜像的大小和运行时的资源消耗. 多阶段构建的一般工作流 ...
- k8s标签的增删改查和选择器
在 Kubernetes(K8s)中,标签(Label)是与资源对象相关联的键值对,用于实现多维度的资源分组管理功能.下面是关于 Kubernetes 标签的增删改查操作的简要说明: 查询标签 (查) ...
- RaspberryPi 树莓派 omxplayer 的音量设置方法实测有效!
正确的设置初始音量的方法,其中n/100=你期望的初始dB值, omxplayer --vol n target.media omxplayer介绍 omxplayer 在github中的描述是一个弃 ...
- mybatis之Mapped Statements collection does not contain value for...错误原因分析
错误原因有几种: 1.mapper.xml中没有加入namespace: 2.mapper.xml中的方法和接口mapper的方法不对应: 3.mapper.xml没有加入到mybatis-co ...
- github 上不去
win:C:\WINDOWS\system32\drivers\etc linux:/etc/hosts 在这个网址查询每个网址对应的ip:https://www.ipaddress.com/ 202 ...
- drf(视图组件)
一. 前言 Django REST framwork 提供的视图的主要作用 1. 控制序列化器的执行(检验.保存.转换数据) 2. 控制数据库查询的执行 二. 两个视图基类 两个视图基类: APIVi ...
- hdfs disk balancer 磁盘均衡器
目录 1.背景 2.hdfs balancer和 hdfs disk balancer有何不同? 3.操作 3.1 生成计划 3.2 执行计划 3.3 查询计划 3.4 取消计划 4.和disk ba ...
- Jetty的http3模块
启用http3模块,执行如下命令: java -jar $JETTY_HOME/start.jar --add-modules=http3 命令的输出,如下: ALERT: There are ena ...
- 内容分发策略与 SEO 优化指南
内容分发 内容分发是指通过各种媒介分享.发布或传播内容给受众的过程.这些媒介可以包括不同的渠道,例如社交媒体平台(Facebook.Twitter.LinkedIn.朋友圈.微博.小红书.B 站.抖音 ...
- 灵活配置 Spring 集合:List、Set、Map、Properties 详解
使用<property>标签的value属性配置原始数据类型和ref属性配置对象引用的方式来定义Bean配置文件.这两种情况都涉及将单一值传递给Bean 那么如果您想传递多个值,例如Jav ...