Dav*_*vid 5 xml sql t-sql for-loop xmltype
我有一个表格,其中包含名为"InvoiceXML"的XMLTYPE列.
此列中的数据是以下形式的XML:
<Invoice CustomerNum="1234" >
<CustomDeliveryDetails />
</Invoice>
Run Code Online (Sandbox Code Playgroud)
当我做的时候
SELECT ... FOR XML PATH(''), ROOT('Invoices')
Run Code Online (Sandbox Code Playgroud)
我最终得到:
<Invoices>
<InvoiceXML>
<Invoice CustomerNum="1234" >
<CustomDeliveryDetails />
</Invoice>
</InvoiceXML>
</Invoices>
Run Code Online (Sandbox Code Playgroud)
如何停止输出中出现的列名InvoiceXML?
declare @T table (invoiceXML xml)
insert into @T values (
'<Invoice CustomerNum="1234" >
<CustomDeliveryDetails />
</Invoice>
')
insert into @T values (
'<Invoice CustomerNum="4321" >
<CustomDeliveryDetails />
</Invoice>
')
select (select T.invoiceXML)
from @T as T
for xml path(''), root('Invoices')
Run Code Online (Sandbox Code Playgroud)
编辑 1子查询 ( select T.invoiceXML) 没有列名,因此将其删除。
尝试:
SELECT cast(cast(InvoiceXML as nvarchar(max)) + '' as XML)
FROM whatever
FOR XML PATH(''), ROOT('Invoices')
Run Code Online (Sandbox Code Playgroud)