创建自定义嵌套 JSON 结构

如果你需要一些无法使用 FOR JSON PATH 或 FOR JSON AUTO 创建的复杂 JSON 结构,则可以通过将 FOR JSON 子查询作为列表达式来自定义 JSON 输出:

SELECT top 5 o.object_id, o.name,
        (SELECT column_id, c.name
            FROM sys.columns c WHERE o.object_id = c.object_id
            FOR JSON PATH) as columns,
        (SELECT parameter_id, name
            FROM sys.parameters p WHERE o.object_id = p.object_id
            FOR JSON PATH) as parameters
FROM sys.objects o
FOR JSON PATH

每个子查询都将生成将包含在主 JSON 内容中的 JSON 结果。