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

如何在SQL Server中实现XML美观格式化输出?类似PostgreSQL的jsonb_pretty

SQL Server 格式化XML为美观文本的方法

SQL Server没有像PostgreSQL jsonb_pretty那样专门的内置函数,但可以通过XQuery的serialize功能实现XML的缩进格式化,适用于2016及以上版本。

实现示例

针对你提供的压缩XML:

<Helpers><Thing name="Thing1"/><Thing name="Thing2"/></Helpers>

可以用以下SQL代码生成带缩进的美观格式:

DECLARE @xml XML = '<Helpers><Thing name="Thing1"/><Thing name="Thing2"/></Helpers>';
SELECT 
    CONVERT(NVARCHAR(MAX), 
        @xml.query('serialize(., {"indent": true, "encoding": "utf-16"})')
    ) AS FormattedXML;

输出结果

<Helpers>
    <Thing name="Thing1"/>
    <Thing name="Thing2"/>
</Helpers>

关键说明

  • serialize函数的indent: true参数会自动添加换行和缩进
  • 指定encoding: "utf-16"是为了匹配SQL Server XML类型的内部编码,避免字符转换问题
  • 如果使用SQL Server 2016之前的版本,可通过自定义CLR函数实现类似功能,但需要额外配置服务器权限

内容的提问来源于stack exchange,提问作者Jack Deeth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 20:22:17