我在 SQL Server 数据库中有一个表,我正在使用此查询从该表生成 XML。
SELECT OrderNumber, CustomerID, ITEM
FROM OrderHeader
FOR XML RAW('Order'), ELEMENTS, ROOT('Orders')
我得到这样的 XML:
<Orders>
<Order>
<OrderNumber>SO101</OrderNumber>
<CustomerID>1</CustomerID>
<Item>item 1</Item>
</Order>
<Order>
<OrderNumber>SO102</OrderNumber>
<CustomerID>1</CustomerID>
<Item>item 2</Item>
</Order>
</Orders>
但我需要生成以下格式的 XML。
<Orders>
<Order OrderNumber= 'SO101'>
<CustomerID>1</CustomerID>
<Item>item 1</Item>
</Order>
<Order OrderNumber= 'SO102'>
<CustomerID>1</CustomerID>
<Item>item 2</Item>
</Order>
</Orders>
即订单号列需要显示为订单节点的属性。
我怎样才能实现这个目标?
最佳答案
我想您会发现 XML RAW 会限制您的选择。
尝试使用 XML PATH,如下所示:
SELECT OrderNumber AS @Id, CustomerID, ITEM
FROM OrderHeader
FOR XML PATH('Order'), ELEMENTS, ROOT('Orders')
我想看看这是否有效,目前也在尝试改进我的 XML。
关于sql - 需要从 SQL 生成以下格式的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11360802/