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>

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>

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>

7>Today
查询LeaveDate为当前日期的所有项

<Query><Where><FieldRef Name="LeaveDate" /><Value Type="DateTime"><Today /></Value></Where>
</Query>

8>Eq
参考1>和2>

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

<Query><Where><Gt><FieldRef Name="ID" /><Value Type="Integer">3</Value></Gt></Where>
</Query>

10>Lt
查询ID小于3的所有项

<Query><Where><Lt><FieldRef Name="ID" /><Value Type="Integer">3</Value></Lt></Where>
</Query>

11>Geq
查询ID大于等于3的所有项

<Query><Where><Geq><FieldRef Name="ID" /><Value Type="Integer">3</Value></Geq></Where>
</Query>

12>Leq
查询ID小于等于3的所有项

<Query><Where><Leq><FieldRef Name="ID" /><Value Type="Integer">3</Value></Leq></Where>
</Query>

13>Neq
查询ID不等于3的所有项

<Query><Where><Neq><FieldRef Name="ID" /><Value Type="Integer">3</Value></Neq></Where>
</Query>

14>IsNull
查询ID为空(Null)的所有项

<Query><Where><IsNull><FieldRef Name="ID" /></IsNull></Where>
</Query>

15>IsNotNull
查询ID不为空(Null)的所有项

<Query><Where><IsNotNull><FieldRef Name="ID" /></IsNotNull></Where>
</Query>

16>BeginsWith
返回一个Journal列以 “City” 开头为标题的所有项

<Query><Where><BeginsWith><FieldRef Name="Journal" /><Value Type="Note">City</Value></BeginsWith></Where>
</Query>

17>Contains
返回一个Journal列包含 “City” 字符为标题的所有项

<Query><Where><Contains><FieldRef Name="Journal" /><Value Type="Note">City</Value></Contains></Where>
</Query>

18>GroupBy
查询非空CompanyName并分组(理解为合并相同项)显示所有不同的项标题
关于GroupBy的用法参照SQL中的用法,更多信息推荐浏览关于group by的用法原理

<Query><Where><IsNotNull><FieldRef Name="CompanyName" /></IsNotNull></Where><GroupBy><FieldRef Name="CompanyName" /></GroupBy>
</Query>

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]: https://docs.microsoft.com/zh-cn/sharepoint/dev/schema/query-schema

SharePoint常用CAML查询语法及举例相关推荐

  1. python 网络安全数据分析_用Python做数据分析:Pandas常用数据查询语法

    撸主: 大毛 岂安科技业务风险分析师 多年订单业务反欺诈经验,负责岂安科技多款产品运营工作. 在使用Pandas之前,大多数数据分析师已经掌握了Excel和SQL,并且在刚上手Pandas时会经常习惯 ...

  2. mysql怎样查表的模式_mysql常用基础操作语法(四)--对数据的简单无条件查询及库和表查询【命令行模式】...

    1.mysql简单的查询:select 字段1,字段2... from tablename; 如果字段那里写一个*,代表查询所有的字段,等同于指定出所有的字段名,因此如果要查询所有字段的数据,一般都是 ...

  3. Solr常用查询语法笔记

    1.常用查询 q - 查询字符串,这个是必须的.如果查询所有*:* ,根据指定字段查询(Name:张三 AND Address:北京) fq - (filter query)过虑查询,作用:在q查询符 ...

  4. 用LINQ结合CAML查询 Sharepoint 数据库内容

    直接用CAML语句查询Sharepoint有时候条件多比较麻烦,所以想到先用CAML查询出来一个对象,然后用LINQ来对对象再次操作 例如,先取一个SPLIST对象 ,然后用CAML对LIST查询操作 ...

  5. mysql+group+desc_lt;导图gt;Mysql常用查询语法

    普通查询 查看整个表格式:select * from 表名; 示例:select * from students; 查询指定字段格式select 字段名1,字段名2 from 表名; 示例select ...

  6. Kibana 使用 KQL 查询语法-kibana 常用查询语法

    Kibana 查询语言 (KQL) 是一种使用自由文本搜索或基于字段的搜索过滤 Elasticsearch 数据的简单语法. KQL 仅用于过滤数据,并没有对数据进行排序或聚合的作用. KQL 能够在 ...

  7. 入门者必看!SharePoint之CAML总结(实战)

    分享人:广州华软 无名 一. 前言 在SharePoint中,不支持直接操作数据库,但开发过程中,避免不了查询数据,那么,在SharePoint中如何查询数据? 当然是使用CAML语法. 二. 目录 ...

  8. 对CAML查询语句的几点小记

    CAML(Collaborative Application Markup Language)--协作应用程序标记语言,在调用WSS提供的诸多Web Service时进行数据查询的一组XML规范,通过 ...

  9. ElasticSearch 高级查询语法

    ElasticSearch 高级查询语法Query DSL ES倒排索引 ES高级查询Query DSL 查询所有 match_all 分页查询form 深分页查询Scroll 指定字段排序sort ...

  10. 【ES知识】ES基础查询语法一览

    大家好,我是老坛. 更多优质文章资源请关注同名公众号:老坛聊开发 Elasticsearch是一个分布式的RESTful 风格的搜索和数据分析引擎,它使用方便,查询速度快,因此也被越来越多的开发人员使 ...

最新文章

  1. 洛谷 p2066 机器分配(资源型)
  2. CentOS7 0安装Maven
  3. Azure Bill
  4. PAT_B_1033_Java(20分)
  5. ai背景合成_智能合成AI主播很危险,应立即取消!
  6. python指定条件分类输出_python基础(二)条件判断、循环、格式化输出
  7. Spring Boot 最佳实践(三)模板引擎FreeMarker集成
  8. 操作系统之文件管理:5、文件物理结构(连续分配、链式(显式、隐式)分配、索引分配(链接、多层索引、混合索引))
  9. php+mysql+json android 连接wamp
  10. 解决 css 浮动后 父元素高度失效问题
  11. sql 语句美化工具
  12. 【Lingo 18.0及其安装教程】
  13. 【仿人机器人】机器人基础介绍
  14. fsearch:适用于linux的快速查找软件(类似everything)安装教程
  15. matlab 矩阵分解行满秩,matlab生成满秩矩阵
  16. Windows7或Windows10创建基于L2TP IPSEC客户端教程
  17. 学金融会python_大学生金融小白自学Python做量化投资需要注意哪些?
  18. 01 - C/C++中的字符串的最后一位是什么?
  19. 蓝牙常用的profile
  20. MATLAB画ROC曲线

热门文章

  1. rpc服务器不可用自动重启,出现RPC服务器不可用的解决方法
  2. EAS服务不可用或者更新一半中断解决方案
  3. AM、PM是上午和下午的英文缩写、英文缩写(英语星期月份等)
  4. SLA服务可用性4个9是什么意思?如何保证服务的高可用性 HA(High Availability)?...
  5. 中国数字化转型的未来与建议
  6. python爬取全球历年GDP数据
  7. 如何让自己成为一个优秀的Java架构师,而不是码农
  8. Matlab 绘图函数之plot、semilogx、semilogy、loglog函数的使用
  9. win 10连上wifi 无Internet 解决方法
  10. Netd 服务的 netd 套接字创建