zoukankan      html  css  js  c++  java
  • SharePoint常用CAML查询语法及举例

    SharePoint常用Caml查询语法及举例
    1.CAML语法简介
    2.Caml查询语法常见运算符
    3.应用举例
    参考
    1.CAML语法简介
    CAML简称协作应用程序标记语言,基于XML,用来定义SharePoint网站和列表中栏和视图,可以用于定义数据、呈现数据并在编程中实现。本文只对查询模块进行汇总说明。

    2.Caml查询语法常见运算符
    写在query标签中用于指定条件进行查询,注意区分大小写。

    运算符 说明 功能
    And 且 条件拼接 ,并且
    Or 或 条件拼接 ,或者
    Where 位置筛选器 在查询上下文中用来指定位置的筛选器
    FieldRef 引用栏目声明 表示对查询中的字段的引用
    Value 值 声明条件的值将与 FieldRef 元素返回的值进行比较
    Now 当前日期和时间 返回当前日期和时间
    Today 当前日期 返回当前日期
    Eq 等于 条件声明 ,返回等于XXX的项
    Gt 大于 条件声明 ,比较运算符大于
    Lt 小于 条件声明 ,比较运算符小于
    Geq 大于等于 条件声明,比较运算符大于等于
    Leq 小于等于 条件声明,比较运算符小于等于
    Neq 不等于 条件声明,比较运算符不等于
    IsNull 为空 条件声明,返回为空 (Null) 的项
    IsNotNull 非空 条件声明,返回为非空 (Null) 的项
    BeginsWith 以某字符串开始 条件声明,返回以XXX开头的项
    Contains 包含 条件声明,返回含有XXX的项
    GroupBy 分组 条件声明,对查询返回的数据进行分组
    OrderBy 排序 条件声明,对查询返回的数据进行排序
    3.应用举例
    以下根据查询常见的运算符进行举例说明:
    1>And
    查询LastName为Bagel且FirstName为Jean(两个条件)的所有项

    <Query>
    <Where>
    <And>
    <Eq><FieldRef Name="LastName" />
    <Value Type="Text">Bagel</Value>
    </Eq>
    <Eq><FieldRef Name="FirstName" />
    <Value Type="Text">Jean</Value>
    </Eq>
    </And>
    </Where>
    </Query>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    2>Or
    查询LastName为Bagel或FirstName为Jean或EnName为James(三个条件)的所有项

    <Query>
    <Where>
    <Or>
    <Or>
    <Eq><FieldRef Name="LastName" />
    <Value Type="Text">Bagel</Value>
    </Eq>
    <Eq><FieldRef Name="FirstName" />
    <Value Type="Text">Jean</Value>
    </Eq>
    </Or>
    <Eq><FieldRef Name="EnName" />
    <Value Type="Text">James</Value>
    </Eq>
    </Or>
    </Where>
    </Query>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    3>Where
    参考1>和2>

    4>FieldRef
    参考1>和2>

    5>Value
    参考1>和2>
    Type后接数据类型,常见有:Integer整型,Text字段类型,DateTime时间类型

    6>Now
    查询UpdateTime为当前时间的所有项

    <Query>
    <Where>
    <FieldRef Name="UpdateTime" />
    <Value Type="DateTime">
    <Now />
    </Value>
    </Where>
    </Query>
    1
    2
    3
    4
    5
    6
    7
    8
    7>Today
    查询LeaveDate为当前日期的所有项

    <Query>
    <Where>
    <FieldRef Name="LeaveDate" />
    <Value Type="DateTime">
    <Today />
    </Value>
    </Where>
    </Query>
    1
    2
    3
    4
    5
    6
    7
    8
    8>Eq
    参考1>和2>

    9>Gt
    查询ID大于3的所有项

    <Query>
    <Where>
    <Gt><FieldRef Name="ID" />
    <Value Type="Integer">3</Value>
    </Gt>
    </Where>
    </Query>
    1
    2
    3
    4
    5
    6
    7
    10>Lt
    查询ID小于3的所有项

    <Query>
    <Where>
    <Lt><FieldRef Name="ID" />
    <Value Type="Integer">3</Value>
    </Lt>
    </Where>
    </Query>
    1
    2
    3
    4
    5
    6
    7
    11>Geq
    查询ID大于等于3的所有项

    <Query>
    <Where>
    <Geq><FieldRef Name="ID" />
    <Value Type="Integer">3</Value>
    </Geq>
    </Where>
    </Query>
    1
    2
    3
    4
    5
    6
    7
    12>Leq
    查询ID小于等于3的所有项

    <Query>
    <Where>
    <Leq><FieldRef Name="ID" />
    <Value Type="Integer">3</Value>
    </Leq>
    </Where>
    </Query>
    1
    2
    3
    4
    5
    6
    7
    13>Neq
    查询ID不等于3的所有项

    <Query>
    <Where>
    <Neq><FieldRef Name="ID" />
    <Value Type="Integer">3</Value>
    </Neq>
    </Where>
    </Query>
    1
    2
    3
    4
    5
    6
    7
    14>IsNull
    查询ID为空(Null)的所有项

    <Query>
    <Where>
    <IsNull>
    <FieldRef Name="ID" />
    </IsNull>
    </Where>
    </Query>
    1
    2
    3
    4
    5
    6
    7
    15>IsNotNull
    查询ID不为空(Null)的所有项

    <Query>
    <Where>
    <IsNotNull>
    <FieldRef Name="ID" />
    </IsNotNull>
    </Where>
    </Query>
    1
    2
    3
    4
    5
    6
    7
    16>BeginsWith
    返回一个Journal列以 “City” 开头为标题的所有项

    <Query>
    <Where>
    <BeginsWith>
    <FieldRef Name="Journal" />
    <Value Type="Note">City</Value>
    </BeginsWith>
    </Where>
    </Query>
    1
    2
    3
    4
    5
    6
    7
    8
    17>Contains
    返回一个Journal列包含 “City” 字符为标题的所有项

    <Query>
    <Where>
    <Contains>
    <FieldRef Name="Journal" />
    <Value Type="Note">City</Value>
    </Contains>
    </Where>
    </Query>
    1
    2
    3
    4
    5
    6
    7
    8
    18>GroupBy
    查询非空CompanyName并分组(理解为合并相同项)显示所有不同的项标题
    关于GroupBy的用法参照SQL中的用法,更多信息推荐浏览关于group by的用法原理

    <Query>
    <Where>
    <IsNotNull>
    <FieldRef Name="CompanyName" />
    </IsNotNull>
    </Where>
    <GroupBy>
    <FieldRef Name="CompanyName" />
    </GroupBy>
    </Query>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    19>OrderBy
    查询 DeadLine为空或大于等于当前日期的所有项并按ID升序返回(Ascending升序为TRUE,降序为FALSE)

    <Query>
    <Where>
    <Or>
    <IsNull>
    <FieldRef Name="DeadLine" />
    </IsNull>
    <Geq>
    <FieldRef Name="DeadLine" />
    <Value Type="DateTime">
    <Today />
    </Value>
    </Geq>
    </Or>
    </Where>
    <OrderBy>
    <FieldRef Name="ID" Ascending="TRUE" />
    </OrderBy>
    </Query>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    参考
    以上为个人整理总结的知识,如有遗漏或错误欢迎留言指出、点评,如要引用,请联系通知,未经允许谢绝转载。
    [1]: https://docs.microsoft.com/zh-cn/sharepoint/dev/schema/query-schema
    ————————————————
    版权声明:本文为CSDN博主「Penn Li」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_44903147/article/details/89520362

  • 相关阅读:
    gedit保存出现The file has been changed since reading it!!! Do you really want to write to it (y/n)?y
    8051处理器与Quatus Signal TypeⅡ进行板级调试
    DesignWare I2C模块的验证
    Denali NAND FLASH控制器的验证
    openocd安装与调试
    SPI协议介绍
    CAN协议学习(二)MCAN控制器介绍
    CAN协议学习(一)协议介绍
    Remosaic技术学习
    ISP算法:深入聊聊lens shading
  • 原文地址:https://www.cnblogs.com/lhxsoft/p/14535944.html
Copyright © 2011-2022 走看看