Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何通过xQuery从XML中相同名称的多个元素中检索一个元素的值?_Sql_Sql Server_Xml_Xquery - Fatal编程技术网

Sql 如何通过xQuery从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

我在SQLServer中有这样的xml字段

<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的工作。但如果我想要包含所有权的特性呢?我的意思是,在我的案例中,所有权价值可能是“不动产”或“租赁”等。