You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server关联表查询结果转换为指定嵌套XML格式的实现方法

解决方案

你可以使用SQL Server的嵌套FOR XML PATH查询来实现自定义层级的XML输出,完整查询语句如下:

SELECT
    -- 外层DataHeader节点属性
    TD.DataType AS [@DataType],
    TD.Data AS [@girodata],
    -- 嵌套SectionHeader节点
    (
        SELECT
            TD2.DataType AS [@DataType],
            TD2.Data AS [@girodata],
            -- 嵌套SectionData节点
            (
                SELECT
                    TD3.DataType AS [@DataType],
                    TD3.Data AS [@girodata]
                FROM TestData TD3
                INNER JOIN TestDataTypes TDT3 ON TD3.DataType = TDT3.DataTypeID
                WHERE TDT3.DateTypeName = 'SectionData'
                FOR XML PATH('SectionData'), TYPE
            )
        FROM TestData TD2
        INNER JOIN TestDataTypes TDT2 ON TD2.DataType = TDT2.DataTypeID
        WHERE TDT2.DateTypeName = 'SectionHeader'
        FOR XML PATH('SectionHeader'), TYPE
    ),
    -- 同级SectionFooter节点
    (
        SELECT
            TD4.DataType AS [@DataType],
            TD4.Data AS [@girodata]
        FROM TestData TD4
        INNER JOIN TestDataTypes TDT4 ON TD4.DataType = TDT4.DataTypeID
        WHERE TDT4.DateTypeName = 'SectionFooter'
        FOR XML PATH('SectionFooter'), TYPE
    ),
    -- 同级DataFooter节点
    (
        SELECT
            TD5.DataType AS [@DataType],
            TD5.Data AS [@girodata]
        FROM TestData TD5
        INNER JOIN TestDataTypes TDT5 ON TD5.DataType = TDT5.DataTypeID
        WHERE TDT5.DateTypeName = 'DataFooter'
        FOR XML PATH('DataFooter'), TYPE
    )
FROM TestData TD
INNER JOIN TestDataTypes TDT ON TD.DataType = TDT.DataTypeID
WHERE TDT.DateTypeName = 'DataHeader'
FOR XML PATH('DataHeader'), TYPE

语法说明

  • FOR XML PATH('节点名称')可以自定义每个层级的根节点名称
  • 字段别名加@前缀会被识别为节点属性,不会生成单独的子节点
  • TYPE关键字可以保留子查询的XML格式,避免输出内容被转义为普通字符串
  • 按照你需要的嵌套层级,从最外层到最内层逐层编写嵌套子查询即可匹配目标格式

注:你示例中的DataFooter闭合标签误写为GiroFooter,上述查询输出的是符合命名规范的正确闭合标签。

内容的提问来源于stack exchange,提问作者Morten Bach

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:09:05