首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql分组将一列值变换为一个字段,用逗号分隔

2013-07-25 
sql分组将一列值转换为一个字段,用逗号分隔在线等~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~表结构和

sql分组将一列值转换为一个字段,用逗号分隔
在线等~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
表结构和数据如下:
NAMEROWNOORGID
a11
b21
c31
asdf12
1233413
---------------------
转换后的结果如下:
NAMEROWNOORGID
a,b,c   1       1
asdf12
1233413

即,orgId相同的行,将其name拼装成一个字段,用逗号分开; rowNo是无关紧要的字段,可以考虑也可以不考虑。

怎么将结果写出来,不要用函数,也不用存储过程,而且这张表的数据是动态的,并不一定就是这几行。
求大神降下天书一卷,解小弟困惑。
注:数据库为DB2 DB2 sql
[解决办法]
select ORGID,wm_concat(NAME) from tlb  
group by ORGID
oracle写法
[解决办法]


 --select 'a' NAME, 1 ROWNO, 1 ORGID
 --into #t
 --union all select 'b', 2 ,1
 --union all select 'c', 3 ,1
 --union all select 'asdf', 1 ,2
 --union all select '12334', 1 ,3

select stuff(
(select ','+name 
 from #t b 
 where a.ORGID=b.ORGID for xml path(''))
 ,1
 ,1
 ,'') as NAME
 ,min(ROWNO) as ROWNO
 ,ORGID
 from #t a
 group by ORGID

这是sql server的写法,db不知道有没有类似的
[解决办法]
参考;
ORACLE和DB2数据库GROUP BY条件下合并行记录
[解决办法]
引用:
Quote: 引用:

参考;
ORACLE和DB2数据库GROUP BY条件下合并行记录

头像很漂亮!
这种写法我试过,因为是在自己开发的一个数据库平台上进行查询,所以不支持xmlAgg这些函数。


不支持就不好弄了,我对DB2不了解,我看到的都是这种;
http://www.2cto.com/database/201212/177065.html

热点排行