2013-08-28 65 views
1

我有一個包含以下數據的xml列的表。有沒有辦法在XQuery Value函數中指定「where」條件?

<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 

回答

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 
相關問題