学习:WSS/MOSS中的查询构造

      先来看看查询的元素:
   
Query
      Where
              Logical Joins
              And
                      [Logical Joins]
                      [Comparison Operators]
              Or
                      [Logical Joins]
                      [Comparison Operators]
              Comparison Operators
              BeginsWith
                      FieldRef
                      Value
                      XML
              Contains
                      FieldRef
                      Value
                      XML
              Eq
                      FieldRef
                      Value
                      XML
              Geq
                      FieldRef
                      Value
                      XML
              Gt
                      FieldRef
                      Value
                      XML
              Leq
                      FieldRef
                      Value
                      XML
              Lt
                      FieldRef
                      Value
                      XML
              Neq
                          FieldRef
                          Value
                          XML
              DateRangesOverlap
                      FieldRef
                      Value
              IsNotNull
                      FieldRef
              IsNull
                      FieldRef
      Order/Group Operators
      OrderBy
              FieldRef
      GroupBy
              FieldRef


      但是,单单看这个很难理解,尤其是Where的构造。说起来好像比较麻烦,举个例子,就清楚了:
   
<And>
  <And>
      <Eq>
          <FieldRef Name="ProductID"/>
          <Value Type="Text">J1539</Value>
      </Eq>
      <Eq>
          <FieldRef Name="ProductID"/>
          <Value Type="Text">J9862</Value>
      </Eq>
  </And>
  <Or>
      <Eq>
          <FieldRef Name="ProductID"/>
          <Value Type="Text">J0394</Value>
      </Eq>
      <Eq>
          <FieldRef Name="ProductID"/>
          <Value Type="Text">J4589</Value>
      </Eq>
  </Or>
</And>


      上面的代码描述:(ProductID = J1539 AND ProductID = J9862) AND (ProductID = J0394 OR ProductID = J4589)。

      但是,今天却发现,在构造查询时,如果最后多了结束符,却不会影响结果(不起作用),也不会报错。


<And>
  <And>
    <Eq>
      <FieldRef Name="ProductID"/>
      <Value Type="Text">J1539</Value>
    </Eq>
    <Eq>
      <FieldRef Name="ProductID"/>
      <Value Type="Text">J9862</Value>
    </Eq>
  </And>
  <Or>
    <Eq>
      <FieldRef Name="ProductID"/>
      <Value Type="Text">J0394</Value>
    </Eq>
    <Eq>
      <FieldRef Name="ProductID"/>
      <Value Type="Text">J4589</Value>
    </Eq>
  </Or>
</And>
    <Eq>
      <FieldRef Name="ProductID"/>
      <Value Type="Text">J4590</Value>
    </Eq>
</And>

   

      蓝色部分是之前的例子,红色是新增部分。不妨去试验一下。


文章出自: 刘帝勇的大观园http://blog.sina.com.cn/s/blog_3f2ef11801000bpn.html~type=v5_one&label=rela_nextarticle

你可能感兴趣的:(OS)