基于多个子表行的SQL更新父表字段

基于多个子表行的SQL更新父表字段,第1张

基于多个子表行的SQL更新表字

update parent
set 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。

  1. STUFF()函数

    ','
    从第一个特征中删除前导(逗号)。

  2. FOR XML根据查询结果创建XML文档。这是SQL Server的一个众所周知的技巧-因为该列未命名,所以不生成任何元素,并且仅输出(每行的)原始文本,然后将其合并为单个行。

互联网上很少有文章试图对其进行详细解释,因为该代码本身仅是一个解释。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5651263.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存