我有一个表,其中列包含XML数据。现在我想要检查具有节点限制的那些xml数据。请参阅以下示例以获取有关我的方案的更多说明,
declare @table table (id int, xmlfield xml) insert into @table select 1,'<Root xmlns="">
<Sample>
<Issue>
<Level>one</Level>
<Descp>First Example</Descp>
</Issue>
<Issue>
<Level>two</Level>
<Descp>Second Example</Descp>
</Issue>
</Sample> </Root>'
select * from @table
现在我需要以下结果集
Id XMLfield
1 first example
即,对于所选级别,我需要对其进行解密。更明确地说,该节点应限制为<level>one</level>
(需要:第一级的描述是什么?)
提前致谢
答案 0 :(得分:2)
select id,
xmlfield.value('(//Issue[Level = "one"]/Descp/text())[1]', 'varchar(100)') as XMLField
from @table
答案 1 :(得分:1)
您正在寻找的XQuery是
//Issue[Level = "one"]/Descp/data()