update parentset longtext = stuff(( select ',' + c.char + ': ' + c.val from child c where c.uid = parent.uid for xml path(''), type).value('.','nvarchar(max)'),1,1,'');我已经用解决方案更新了您的SQLFiddle。
STUFF()函数
','
从第一个特征中删除前导(逗号)。FOR XML根据查询结果创建XML文档。这是SQL Server的一个众所周知的技巧-因为该列未命名,所以不生成任何元素,并且仅输出(每行的)原始文本,然后将其合并为单个行。
互联网上很少有文章试图对其进行详细解释,因为该代码本身仅是一个解释。



