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

如何修改SQL语句生成单根节点的指定格式XML?

解决SQL FOR XML生成单个节点的问题

这个问题我之前也踩过类似的坑,其实就是对FOR XML PATH的参数用法理解有点小偏差~

你原来的SQL语句里用了FOR XML PATH ('root'),这相当于告诉SQL Server:把每一行查询出来的结果都单独包装成一个<root>节点,所以才会出现多个独立的<root>,每个里面只放一个<choice>。

要让所有<choice>都放在同一个<root>里,只需要调整一下FOR XML的参数写法:

SELECT ID AS 'choice/@value', DisplayName AS 'choice' 
FROM tablename 
WHERE [Status] = 'open' 
FOR XML PATH(''), ROOT('root')

我来拆解一下改动的逻辑:

  • PATH(''):这个设置会让每一行生成的<choice>元素直接拼接在一起,不会给每一行额外添加外层节点;
  • ROOT('root'):这个参数会把所有拼接好的<choice>元素,统一包裹到一个<root>节点里,正好符合你想要的格式。

执行这个语句后,生成的XML就会是你期望的样子:

choice 1 choice 2 choice 3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:57:15