1

我有一个包含以下数据的 xml 列的表。

<a:Tracking>
    <b:TrackingID>343545</b:TrackingID>
    <b:TrackingID n:id="abc">12345</b:TrackingID>
</a:Tracking>

我需要获取节点 b:TrackingID 的值,其中它包含一个属性 n:id,其值为“abc”。

我正在尝试以下代码但没有成功。有没有人有任何想法?谢谢!

WITH XMLNAMESPACES ('http://nm.gov/nm/2.0' as b,
    'http://nm.gov/nm/structures/2.0' as n)
    Select @TrackingID = Message.value('(//b:TrackingID)[@n:id = "abc"]', 'varchar(100)')
        From tblData e WITH(NOLOCK)   
        Where ID = 12
4

1 回答 1

0
WITH XMLNAMESPACES ('http://nm.gov/nm/2.0' as b,
    'http://nm.gov/nm/structures/2.0' as n)
    Select @TrackingID = Message.value('(//b:TrackingID/@n:id[. = "abc"]', 'varchar(100)')
        From tblData e WITH(NOLOCK)   
        Where ID = 12
于 2013-09-20T19:55:06.303 回答