T-SQL如何将表中多行JSON数据合并为指定结构的单个JSON行
T-SQL 合并多行数据为目标JSON结构实现方案
前置要求
- 适用版本:SQL Server 2016及以上(原生支持JSON处理能力)
- 若你的
json字段为字符串类型存储的JSON内容,无需额外转换,直接使用下方代码即可
实现代码
SELECT ( SELECT -- 转换id为字符串类型匹配目标结构 CAST(id AS VARCHAR(10)) AS id, -- 将原有json字段包裹为单元素数组,JSON_QUERY避免内容被转义 JSON_QUERY('[' + json + ']') AS json FROM 你的实际表名 -- 替换为你自己的表名称 FOR JSON PATH ) AS graphs FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
代码说明
FOR JSON PATH:按照查询的列层级结构自动生成JSON格式WITHOUT_ARRAY_WRAPPER:去掉T-SQL生成JSON时默认添加的外层数组方括号,匹配你需要的外层结构JSON_QUERY:告知SQL引擎对应内容是合法JSON字符串,序列化时不会额外添加转义字符
如果你的json字段本身为SQL Server原生JSON类型,只需将json字段强制转为NVARCHAR类型即可:
JSON_QUERY('[' + CAST(json AS NVARCHAR(MAX)) + ']') AS json
内容的提问来源于stack exchange,提问作者r2deeptube
相关产品推荐
相关产品推荐

