使用TSQL和XQuery解析XML-获取给定元素值的属性值
我正试图将一个XML文件分解成mssql数据库(SQLServer2008R2)。我希望找到特定元素值的属性值 文件摘录:使用TSQL和XQuery解析XML-获取给定元素值的属性值,tsql,xpath,sql-server-2008-r2,xquery,Tsql,Xpath,Sql Server 2008 R2,Xquery,我正试图将一个XML文件分解成mssql数据库(SQLServer2008R2)。我希望找到特定元素值的属性值 文件摘录: <company> <names> <name percent="6.55">Company X</name> <name percent="4.99">Company Y</name> <name percent="4.92">Com
<company>
<names>
<name percent="6.55">Company X</name>
<name percent="4.99">Company Y</name>
<name percent="4.92">Company Z</name>
</names>
</company>
X公司
Y公司
Z公司
所以我在寻找name元素的percent属性的值,其中name元素等于“Company Z”。在这种情况下,它应该返回值“4.92”
到目前为止,我已经提出了以下代码:
declare @xml xml
set @xml = N'
<company>
<names>
<name percent="6.55">Company X</name>
<name percent="4.99">Company Y</name>
<name percent="4.92">Company Z</name>
</names>
</company>'
select
@xml.value('(/company/names[name = "Company Z"]/@percent)[1]', 'decimal(8,5)') as Percentage
declare@xml
设置@xml=N'
X公司
Y公司
Z公司
'
选择
@xml.value('(/company/names[name=“company Z”]/@percent)[1],'decimal(8,5)')作为百分比
这将返回NULL。我尝试了几种途径,但都没有返回我所寻找的。有人能指出我做错了什么吗
非常感谢您的帮助 试试看
data(/company/names/name[.='Company Z']/@percent)
作为xpath声明@xml
declare @xml xml
set @xml = N'
<company>
<names>
<name percent="6.55">Company X</name>
<name percent="4.99">Company Y</name>
<name percent="4.92">Company Z</name>
</names>
</company>'
select
@xml.value('(/company/names/name[. = "Company Z"]/@percent)[1]', 'decimal(8,5)') as Percentage
设置@xml=N'
X公司
Y公司
Z公司
'
选择
@xml.value('(/company/names/name[.=“company Z”]/@percent)[1],'decimal(8,5)')作为百分比