【问题标题】:T-SQL Output to JSON Not Working As Expected到 JSON 的 T-SQL 输出未按预期工作
【发布时间】:2021-07-29 04:09:51
【问题描述】:

我想在 JSON 文档中组合并输出三个表。 Table1 是父级,它有两个子级 Table2 和 Table3。

我正在努力让 JSON 像这样格式化

{
"Table1": [
    {
        "DOC_ID": 201300624951,
        "DOC_DESCR": null,
        "Table2": [
            {
                "DOC_ID": 201300624951,
                "DOC_DESCR": null,
                "PAY_ACCT_NO": null,
                "APPLY_TO_DOC_NO": null,
                "APPLY_TO_DOC_DAT": null,
                "APPLY_TO_DOC_TYP": null,
                "PAY_APPLY_METH": null,
                "PAY_AMT": null,
                "DwCreateDate": null
            }
        ],
        "Table3": [
            {
                "DOC_ID": 201300624951,
                "PKG_TRK_SEQ_NO": null,
                "PKG_TRK_NO": null,
                "DwCreateDate": null
            }
        ]
    }
]

}

其中 DOC_ID 是将所有表联系在一起的键。

感谢任何帮助,如果需要,我可以提供示例数据。谢谢!

【问题讨论】:

  • 欢迎来到 Stackoverflow。请阅读how to ask。当询问有关 SQL 的问题时,您应该提供一组相关的示例数据(最好是 DML 来创建它)和您迄今为止尝试过的代码。您可以编辑您的问题以包含它,这将非常有助于您获得问题的良好答案。

标签: json tsql


【解决方案1】:

这样的事情应该可以工作:

select *,
 (select * from table2 where table1.doc_id=table2.doc_id for json path, include_null_values) as Table2,
 (select * from table3 where table1.doc_id=table3.doc_id for json path, include_null_values) as Table3
from table1
for json path, root('Table1'), include_null_values

【讨论】:

    猜你喜欢
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 2019-08-11
    • 2013-11-27
    • 1970-01-01
    相关资源
    最近更新 更多