日期:2014-05-17  浏览次数:20449 次

sql server 列转行的问题 帮忙看看

我想把 CPSI_ID 相同的几行数据 合并成一行 把CS_CIGARETTE_NAME,CPDI_CIGARETTE_NUMBER这两列数据合并成一列用,隔开
例如

info                               CPSI_ID
红河(软甲),3 ,雄狮(硬),1,云烟(紫),1    df614b00-f479-450e-8eca-16468e8a2aa6




还请大神帮忙 小弟的数据库不是很好。。

------解决方案--------------------
少写了一部分。。。


select CPSI_ID,
stuff((select ','+CS_CIGARETTE_NAME+','+CPDI_CIGARETTE_NUMBER
from tb where CPSI_ID=a.CPSI_ID for xml path(''))1,1,'') as info
from tb as a group by CPSI_ID


------解决方案--------------------
select info=stuff((select ','+CS_CIGARETTE_NAME+','+rtrim(CPDI_CIGARETTE_NUMBER) from tb tb2 where tb1.CPSI_ID=tb2.CPSI_ID for xml path('')),1,1,''),CPSI_ID from tb tb1 group by CPSI_ID