开发者社区> 问答> 正文

将多行的JSON对象组合成一个对象

将多行的JSON对象组合成一个对象

展开
收起
贺贺_ 2019-12-03 17:30:57 421 0
1 条回答
写回答
取消 提交回答
  • 问题是,您正在存储 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;
    
    2019-12-03 17:31:53
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载