我有一個名爲'InvoiceXML'的XMLTYPE列的表格。如何使用FOR XML從XMLTYPE列中選擇時刪除列名稱PATH
此列中的數據是XML形式:
<Invoice CustomerNum="1234" >
<CustomDeliveryDetails />
</Invoice>
當我做了
SELECT ... FOR XML PATH(''), ROOT('Invoices')
我結束了:
<Invoices>
<InvoiceXML>
<Invoice CustomerNum="1234" >
<CustomDeliveryDetails />
</Invoice>
</InvoiceXML>
</Invoices>
如何制止列名稱InvoiceXML出現在輸出中?
不要以爲您可以將字符串直接連接到XML列。你需要加倍轉換:`cast(將XML(InvoiceXML作爲nvarchar(max))+''轉換爲XML)` – 2011-01-25 14:40:38
+1經過進一步的審查,我認爲它可以進一步簡化。我看起來像`cast(InvoiceXML as XML)`就足夠了。 – 2011-01-25 20:54:12
如果我有足夠的代表,我會downvote,因爲由於長度限制,轉換爲nvarchar(max)會從根本上破壞XML類型。 varchar(max),nvarchar(max)和xml可以存儲2GB,但nvarchar使用每個字符2倍的存儲量。參考:http://technet.microsoft.com/en-us/library/ms186939.aspx和http://msdn.microsoft.com/en-us/library/ms187339.aspx – rainabba 2013-10-01 00:59:36