1
在SQL Server 2005中,我試圖在下面的XML格式中解析以下格式的細節,但我無法做到這一點。感謝任何幫助。 我想我的選擇輸出像在SQL Server 2005中解析XML
1 TagSold Tag 0 101 2
2 TagReg Customer 101 0 4
3 TagAdj Tag 0 105 2
<TagDistributor>
<stbLedgerEntryTypes>
<stbLedgerEntryType type="TagSold">
<vcMapping>Tag</vcMapping>
<tiCustTrxnTypeID>0</tiCustTrxnTypeID>
<tiTagTrxnTypeID>101</tiTagTrxnTypeID>
<tiPaymentTypeID>2</tiPaymentTypeID>
</stbLedgerEntryType>
<stbLedgerEntryType type="TagReg">
<vcMapping>Customer</vcMapping>
<tiCustTrxnTypeID>101</tiCustTrxnTypeID>
<tiTagTrxnTypeID>0</tiTagTrxnTypeID>
<tiPaymentTypeID>4</tiPaymentTypeID>
</stbLedgerEntryType>
<stbLedgerEntryType type="TagAdj">
<vcMapping>Tag</vcMapping>
<tiCustTrxnTypeID>0</tiCustTrxnTypeID>
<tiTagTrxnTypeID>105</tiTagTrxnTypeID>
<tiPaymentTypeID>2</tiPaymentTypeID>
</stbLedgerEntryType>
</stbLedgerEntryTypes></TagDistributor>
我試過下面這個。我得到了輸出。但在第一列中,我沒有得到屬性值來區分。我有疑問在第一線。
SELECT
a.b.query('.').value('@type', 'varchar(128)'),
a.b.query('vcMapping').value('.', 'varchar(128)'),
a.b.query('tiCustTrxnTypeID').value('.', 'int'),
a.b.query('tiTagTrxnTypeID').value('.', 'int'),
a.b.query('tiPaymentTypeID').value('.', 'int')
FROM @ipv_xmlDistributorInfo.nodes('TagDistributor/stbLedgerEntryTypes/stbLedgerEntryType') a(b)
如果您需要ROW_NUMBER,那麼這應該工作:http://sqlfiddle.com/#!3/3557c/3 – sgeddes
感謝您的幫助 – bayyinah
沒問題!如果有幫助,請接受答案。祝你好運。 – sgeddes