问题是,您正在存储 JSON,然后格式化它进一步返回为 JSON。您需要存储非 JSON 数据,以便以所需的方式进行。因此,它似乎更容易将其视为字符串:
SELECT t.id,
'{' + STRING_AGG( '"' +t.typee + '": ' + t.jsonStr,',') WITHIN GROUP (ORDER BY typee) + '}'
FROM t
GROUP BY t.id;
使用:
FOR XML PATH
SELECT t1.id,
'{' + STUFF((SELECT ',"' + t2.typee + '": ' + t2.jsonStr
FROM t t2
WHERE t2.Id = t1.id
FOR XML PATH(N''),TYPE).value('.','nvarchar(MAX)'),1,1,'') + '}'
FROM t t1
GROUP BY t1.id;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。