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