Sql 如何通过xQuery从XML中相同名称的多个元素中检索一个元素的值?
我在SQLServer中有这样的xml字段Sql 如何通过xQuery从XML中相同名称的多个元素中检索一个元素的值?,sql,sql-server,xml,xquery,Sql,Sql Server,Xml,Xquery,我在SQLServer中有这样的xml字段 <propertyDetail> <importID>1735532</importID> <pincode /> <landmarks /> <features> <feature>Society Name: sec-87 srs peral floor faridabad</feature> <feature&g
<propertyDetail>
<importID>1735532</importID>
<pincode />
<landmarks />
<features>
<feature>Society Name: sec-87 srs peral floor faridabad</feature>
<feature>Transaction: Resale Property</feature>
<feature>Possession: Dec,2011</feature>
<feature>*Ownership: Freehold*</feature>
<feature>Age of Property: Under Construction</feature>
</features>
</propertyDetail>
1735532
协会名称:sec-87 srs peral floor faridabad
交易:转售物业
持有日期:2011年12月
*所有权:不动产*
物业年限:在建
我想通过xQuery检索具有值“所有权:永久保有权”的功能,功能的顺序可能会有所不同
欢迎任何建议。您可以在筛选器表达式中检查该功能是否存在,即:
//propertyDetail[features/feature[. eq "*Ownership: Freehold*"]]
其中
@x
是您的xml
select @x.query('//feature[. = "*Ownership: Freehold*"]')
如果你想找到任何以所有权开始的东西,那么
select @x.query('//feature[substring(.,1,9)="Ownership"]')
(但理想情况下,如果可以的话,应该改进XML结构)谢谢@podiluska的工作。但如果我想要包含所有权的特性呢?我的意思是,在我的案例中,所有权价值可能是“不动产”或“租赁”等。