整理Oracle分拆合并表

2023-10-17 06:38
文章标签 oracle 整理 合并 分拆

本文主要是介绍整理Oracle分拆合并表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Oracle分拆合并表

/****************************************************************************************
Oracle分拆合并表整理人:中國風(Roy)
日期:2011.11.02
*****************************************************************************************//**--合并--模拟数据
Col1	Col2
1	a
1	b
1	c
2	d
2	e
3	f
**//**--生成结果COL1 	COL2
1 	a,b,c
2 	d,e
3 	f 
**//**oracle10g以上版本字符串函数wmsys.wm_concat**//**方法1**/
with Tab
as
(
select 1 as Col1,'a'  as Col2 from dual union all
select 1,'b' from dual  union all
select 1,'c' from dual union all
select 2,'d' from dual union all
select 2,'e' from dual union all
select 3,'f' from dual 
)
selectCol1,wmsys.wm_concat(Col2 ) as Col2
from tab  group by Col1/**oracle9i可以用connect by**//**方法2**/
with Tab
as
(
select 1 as Col1,'a'  as Col2 from dual union all
select 1,'b' from dual  union all
select 1,'c' from dual union all
select 2,'d' from dual union all
select 2,'e' from dual union all
select 3,'f' from dual 
)
select Col1,substr(max(sys_connect_by_path(Col2,',')),2) Col2
from (select a.*,row_number()over(partition by Col1 order by Col1) rn from Tab a )
group by Col1 start with rn=1
connect by rn-1=prior rn and Col1=prior Col1
order by Col1;/**--分拆--模拟数据
Col1	Col2
1	a,b,c
2	d,e
3	f
**//**--生成结果COL1 	COL2
1 	a
1 	b
1 	c
2 	d
2 	e
3 	f 
**/
/**方法1**/
with Tab
as
(select 1 as Col1,N'a,b,c' as Col2  from dual union all
select 2,N'd,e' from dual union all
select 3,N'f'   from dual )
SELECT Col1,substr(Col2,lev,instr(Col2||',',',',lev)-lev) as Col2
from Tab ,(SELECT LEVEL lev FROM DUAL CONNECT BY LEVEL<=100)
WHERE substr(','||Col2,lev,1)=',' /** 条件可换为 instr(','||Col2,',',lev)=lev**/
order by Col1/**方法2
REGEXP_SUBSTR(srcstr, pattern, position, occurrence, modifier)  
__srcstr        :检索字符串
__pattern      :匹配模式
__position     :搜索srcstr的起始位置(默认为1)
__occurrence:搜索第几次出现匹配模式的字符串(默认为1)
__modifier     :检索模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)  
**/with Tab
as
(select 1 as Col1,N'a,b,c' as Col2  from dual union all
select 2,N'd,e' from dual union all
select 3,N'f'   from dual )
SELECT Col1,REGEXP_SUBSTR(Col2,'[^,]+',1,lev)
FROM Tab,(SELECT LEVEL lev FROM dual CONNECT BY LEVEL <= 100) b
WHERE (LENGTH(Col2)-LENGTH(REPLACE(Col2,',','')))+1 >=lev
ORDER BY Col1,lev


SQL Server 拆分合并表方法

点击打开链接

这篇关于整理Oracle分拆合并表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/223601

相关文章

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

PLsql Oracle 下载安装图文过程详解

《PLsqlOracle下载安装图文过程详解》PL/SQLDeveloper是一款用于开发Oracle数据库的集成开发环境,可以通过官网下载安装配置,并通过配置tnsnames.ora文件及环境变... 目录一、PL/SQL Developer 简介二、PL/SQL Developer 安装及配置详解1.下

oracle如何连接登陆SYS账号

《oracle如何连接登陆SYS账号》在Navicat12中连接Oracle11g的SYS用户时,如果设置了新密码但连接失败,可能是因为需要以SYSDBA或SYSOPER角色连接,解决方法是确保在连接... 目录oracle连接登陆NmOtMSYS账号工具问题解决SYS用户总结oracle连接登陆SYS账号

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

查询Oracle数据库表是否被锁的实现方式

《查询Oracle数据库表是否被锁的实现方式》本文介绍了查询Oracle数据库表是否被锁的方法,包括查询锁表的会话、人员信息,根据object_id查询表名,以及根据会话ID查询和停止本地进程,同时,... 目录查询oracle数据库表是否被锁1、查询锁表的会话、人员等信息2、根据 object_id查询被

使用Python合并 Excel单元格指定行列或单元格范围

《使用Python合并Excel单元格指定行列或单元格范围》合并Excel单元格是Excel数据处理和表格设计中的一项常用操作,本文将介绍如何通过Python合并Excel中的指定行列或单... 目录python Excel库安装Python合并Excel 中的指定行Python合并Excel 中的指定列P

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

基于C#实现PDF文件合并工具

《基于C#实现PDF文件合并工具》这篇文章主要为大家详细介绍了如何基于C#实现一个简单的PDF文件合并工具,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下... 界面主要用于发票PDF文件的合并。经常出差要报销的很有用。代码using System;using System.Col