使用XQuery进行查询

使用XQuery进行查询,xquery,Xquery,XML数据以这种格式存储在sql server中 <Fields> <Field id="1" name="aa" value="00"/> <Field id="2" name="bb" value="11"/> <Field id="3" name="cc" value="22"/> <Field id="4" name="dd" value="33"/> </Fields&g

XML数据以这种格式存储在sql server中

   <Fields>
     <Field id="1" name="aa" value="00"/>
     <Field id="2" name="bb" value="11"/>
     <Field id="3" name="cc" value="22"/>
     <Field id="4" name="dd" value="33"/>
  </Fields>
我想返回满足条件的所有行,但返回不同格式的xml,如下所示:

   <Fields aa="00" bb="11" cc="22" dd="33">
   </Fields>
换句话说,我希望存储格式中的每个字段标记都作为返回的xml中的属性返回

预期格式为


谢谢。

下面是一个可以实现您目标的查询。我假设您知道如何从服务器检索XML数据;在这里,我用变量$fields内联处理它:

xquery version "1.0";

let $fields :=
    <Fields>
        <Field id="1" name="aa" value="00"/>
        <Field id="2" name="bb" value="11"/>
        <Field id="3" name="cc" value="22"/>
        <Field id="4" name="dd" value="33"/>
    </Fields>
return
    <Fields>{
        for $field in $fields/Field
        let $name := $field/@name
        let $value := $field/@value
        return 
            attribute { $name } { $value }
    }</Fields>