根据SQL Server中的内部节点值获取父xml节点

时间:2011-05-31 11:37:34

标签: sql sql-server xpath xquery-sql

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 个答案:

答案 0 :(得分:2)

select @xmlVal.query('/user/token[id="ABC123"]')

答案 1 :(得分:1)

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')