DB2类似于行转列的函数listagg
资料简介:
今天看到了一个博客:原文:http://www.db2china.net/home/space.php?uid=41247&do=blog&id=13044
发现了DB2中的一个listagg函数,真的有意思,在这里发挥了一下。
SQL:
结果:
STNO INFO
------- -----------
NO01 语文 90,数学 99,英语 98
NO02 语文 96,数学 95
与大家分享一下。
发现了DB2中的一个listagg函数,真的有意思,在这里发挥了一下。
SQL:
SELECT stno,LISTAGG(subname||' '||score,',') WITHIN GROUP(ORDER BY 1) info FROM (VALUES ('NO01','语文',90) , ('NO01','数学',99) , ('NO01','英语',98) , ('NO02','语文',96),('NO02','数学',95)) AS t(stno,subname,score) GROUP BY stno;
结果:
STNO INFO
------- -----------
NO01 语文 90,数学 99,英语 98
NO02 语文 96,数学 95
与大家分享一下。
2012-07-23
浏览17508
下载0
已下载用户的评价
您还未下载该资料,不能发表评价;
查看我的 待评价资源
查看我的 待评价资源
ppjava2009系统工程师用友汽车信息科技(上海)有限公司
没用
好了,到这里就需要总结一下了! 本篇提供了关于DB2中多行合并的三种方法,分别是: |-- 版本<9.7 递归CET (8楼),提供的有点晚了 |-- 版本 >=9.7 listagg(1楼)与xmlagg(5楼)
好了,到这里就需要总结一下了! 本篇提供了关于DB2中多行合并的三种方法,分别是: |-- 版本<9.7 递归CET (8楼),提供的有点晚了 |-- 版本 >=9.7 listagg(1楼)与xmlagg(5楼)
ppjava2009系统工程师用友汽车信息科技(上海)有限公司
没用
按照leo的提示,我试着使用这两种方法: SQL : SELECT stno,REPLACE(REPLACE(XML2CLOB(XMLAGG(XMLELEMENT(NAME stno,subname||' '||score||' , '))),''),' ') info
FROM (VALUES ('NO01','语文',90) , ('NO01','数学',99) , ('NO01','英语',98) ,
('NO02','语文',96),('NO02','数学',95)) AS t(stno,subname,score)
GROUP BY stno;
结果:
STNO INFO
------- ----------------------------------
NO01 语文 90 , 数学 99 , 英语 98 ,
NO02 语文 96 , 数学 95 ,
按照leo的提示,我试着使用这两种方法: SQL : SELECT stno,REPLACE(REPLACE(XML2CLOB(XMLAGG(XMLELEMENT(NAME stno,subname||' '||score||' , '))),'
ppjava2009系统工程师用友汽车信息科技(上海)有限公司
没用
[quote]推荐2中方法: 1) 使用xml函数 xmlagg 2) 使用类似于ORACLE 中的CONNECT 结构(db2 中也有递归语句) ... [size=2][color=#999999]leo 发表于 2012-7-23 16:50[/color] [url=http://www.db2china.net/club/redirect.php?goto=findpost&pid=154764&ptid=25045][img]http://www.db2china.net/club/images/common/back.gif[/img][/url][/size][/quote]谢谢!
[quote]推荐2中方法: 1) 使用xml函数 xmlagg 2) 使用类似于ORACLE 中的CONNECT 结构(db2 中也有递归语句) ... [size=2][color=#999999]leo 发表于 2012-7-23 16:50[/color] [url=http://www.db2china.net/club/redirect.php?goto=findpost&pid=154764&ptid=25045][img]http://www.db2china.net/club/images/common/back.gif[/img][/url][/size][/quote]谢谢!