2013-08-28 3 views
1

У меня есть таблица с столбцом xml, которая содержит приведенные ниже данные.Есть ли способ указать условие «где» в функции значения XQuery?

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

мне нужно, чтобы получить значение узла Б: TrackingID, где он содержит атрибут н: идентификатор со значением «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 
Смежные вопросы