Получить родительский узел XML на основе значения внутреннего узла в SQL Server - PullRequest
1 голос
/ 31 мая 2011
declare @xmlVal xml
set @xmlVal = 
'<user>
    <token><id>ABC123</id><endDate>2013-06-16 18:48:50.111</endDate></token>
    <token><id>XYX456</id><endDate>2014-01-01 18:48:50.111</endDate></token>
</user>'

Мне нужен весь узел токена в формате xml, где id = ABC123, поэтому выход будет:

<token>
    <id>ABC123</id>
    <endDate>2013-06-16 18:48:50.111</endDate>
</token>

Ответы [ 2 ]

2 голосов
/ 31 мая 2011
select @xmlVal.query('/user/token[id="ABC123"]')
1 голос
/ 31 мая 2011
SELECT  
a.b.value('id[1]','nvarchar(max)') id,
a.b.value('endDate[1]','datetime') endDate
 FROM    @xmlval.nodes('//user/token[id="ABC123"]') a(b)
 FOR XML PATH('token')
...