Oracel 行转列与列转行
一、 列转行
1. 使用函数:wm_concat()
2. 函数说明:该函数将某一列,根据条件转换成一行(相当于把列里的值合并,并用逗号区分各个值)
3. 例子:
表 testT 中有数据如下所示:
xh age
1 11
1 12
1 13
2 21
2 22
3 31
Sql:
select t.xh, wm_concat(t.age) age from testT t group by t.xh;
查询结果如下所示:
xh age
1 11,12,13
2 21, 22
3 31
PS: wm_concat() 函数还可以与 over\order by 联合使用, 这里不再复述, 感兴趣的可以去查询了解一下。
二、 行转列
1. 使用函数: regexp_substr()、regexp_replace()、level(connect by)、length()
2. 原理说明: 使用level...connect by.. 和 length() 来控制转换后列的数量
使用regexp_substr()控制如何拆分
3. 例子:
现有数据如下:
11,12,13
sql:
select regexp_substr('11,12,13', '[^,]+', 1, level) age from dual
connect by level <= (
Length('11,12,13') - Length(regexp_replace('11,12,13', ',', '')) + 1
);
转换后的结果如下所示:
age
11
12
13
PS: 这里使用到了正则表达式,有兴趣的可以看下这篇文章:
相关推荐
oracle行转列_列转行,实例加解析,自己测试没问题。免费分享了~
oracle的列转行问题 oracle的列转行问题
sql 行转列 与列转行,oracle ,msssql等,详细数据库操作方法,各种例子,欢迎大家学习。、~
oracle列转行的方法,有些时候页面显示要通过后台的列转行去实现,我们可以直接从sql中解决后台很复杂的问题
DB2 SQL 通过函数(CONCAT/POSSTR/LOCATE)实现行转列,列转行 可以按照标点把多列转换为一行,多行转换为一列
Oracle中使用语句将行数据转换称不同的列表示,或者将不同的列数据写到同一列的不同行上的行列转换问题是一个非常传统的话题。 网络上流传了很多将行数据转换称列数据的方法和应用实例,一般通过decode或者case函数...
oracle中实现列转行实例,有表的创建,数据的插入,查询的sql
关于oracle数据库如何行转列SQL语句。
oracle数据库最详细的行转列资料,是官方文档的详细介绍版,中文的
SELECT TRIM(',' FROM SYS.STRAGG(A_NAME||NVL2(A_NAME,',','')))as nams FROM A_TEMP
NULL 博文链接:https://lisanlai.iteye.com/blog/793404
许多情况下,由于程序中需要将行转为列展示,如果使用ORACLE那么这个资源适合你。
oracle developer 列转行 in的入参转换
oracle wm_concat函数,用于列转行,逗号分隔本文将详细介绍此功能的应用
因此用到了逗号分隔列转行的方法。目前该方法只适合在oracle数据库中使用。该方法只需要sql语句就可以实现列转行。 下面给出该方法的示例: select a,b,c from(with test as (select ‘aaa’ a,’bbb’ b,’1,2,3...
主要介绍了Oracle数据表中行转列与列转行的操作方法,这里分静态和动态情况作出了分类讨论,需要的朋友可以参考下
oracle的行列转换例子,行转列,列转行。主要针对oracle10g
行轉列例子,实际的SQL操作,与常用基础知识的PPT配套使用
oracle游标使用大全,其中有很多例子,有助于大家理解,希望对初学者有帮助