动态sql 帮看一下啊,行专列

动态sql ,表如下,sp 内容多样,有可能多达几十个
name sp


1 a
1 b
2 a
2 c

期望结果
name sp_name
1 a,b
2 a,c


select A.ID,  STUFF((select ','+ SP from [Test1] where ID=A.ID for xml path('')),1,1,'') AS SP_NAME
from [dbo].[Test1] A GROUP BY A.ID

看起来没有什么规律啊

SELECT name, group_concat(sp) as 'sp_name' FROM test GROUP BY name

stuff for xml path 可以合并列,具体用法,自己搜索一下可以看到

mysql可以用下面的sql查询

SELECT name,group_concat(distinct sp) as sp_name FROM test GROUP BY name


WITH T1 AS (SELECT 1 ID ,'A' NAME UNION ALL 
            SELECT 1 ID ,'B' NAME UNION ALL 
                        SELECT 2 ID ,'A' NAME UNION ALL 
                        SELECT 2 ID ,'C' NAME  )
SELECT ID,GROUP_CONCAT(NAME) 
FROM T1 
GROUP BY ID