我想要一个简单的sql脚本来满足以下要求。而且未来的数据可能会增加而且不是静态的。所以我需要动态查询。有人请帮帮我。
我有这样的数据
,输出应该是这样的。
答案 0 :(得分:0)
使用MSSql服务器中的Stuff()
尝试此操作;With cte(ParentId, ChidId)
AS
(
SELECT 1,'a' UNION ALL
SELECT 1,'b' UNION ALL
SELECT 1,'123' UNION ALL
SELECT 2,'asd' UNION ALL
SELECT 2,'222' UNION ALL
SELECT 3,'kk' UNION ALL
SELECT 3,'ffh' UNION ALL
SELECT 4,'aaa' UNION ALL
SELECT 5,'fdhgf' UNION ALL
SELECT 5,'fdddv'
)
SELECT parentid,
Stuff((SELECT DISTINCT ', ' + chidid
FROM cte i
WHERE i.parentid = o.parentid
FOR xml path ('')), 1, 1, '') AS ChidId
FROM cte o
GROUP BY parentid