找回密码
 立即注册

QQ登录

只需一步,快速开始

katherinebai

注册会员

4

主题

5

帖子

37

积分

注册会员

积分
37
最新发帖
katherinebai
注册会员   /  发表于:2016-8-10 17:27  /   查看:8009  /  回复:2
本帖最后由 katherinebai 于 2016-8-10 17:27 编辑

上节中我们介绍了活字格可以使用OData进行数据查询,并且提供了四种方式,那么OData参数该怎么写呢?本节主要介绍最基本的数据库查询使用到的OData语法。

为了简单起见,我以URL方式通过示例介绍下其语法。假设数据库中存在一张人员表如下:
blob460013732.png
基于这张表可以进行以下查询:

1. 获取人员表中的所有数据。
  1. http://.../OData/GetData/人员
复制代码
2. 单主键表中通过主键ID获取人员表中ID等于1的行数据,列名可以省略。
  1. http://.../OData/GetData/人员(1)
复制代码
3. 多主键表中通过主键OrderID和ProductID获取OrderDetails表中的OrderID等于10000并且ProductID等于17的行数据,列名不能省略。
  1. http://.../OData/GetData/OrderDetails(OrderID=10000,ProductID=17)
复制代码
4. 获取人员表中ID等于1的姓名,返回一个对象,比如[{"姓名":"张三"}]。
  1. http://.../OData/GetData/人员(1)/姓名
复制代码
5. 获取人员表中ID等于1的姓名,返回一个值,比如"张三"。
  1. http://.../OData/GetData/人员(1)/姓名/$value
复制代码
6. 通过filter查询人员表中年龄大于20的员工数据。
  1. http://.../OData/GetData/人员?$filter=年龄 gt 20
复制代码
7. 多条件查询。查询人员表中姓名中包含"张"字并且年龄大于20的记录。
  1. http://.../OData/GetData/人员?$filter=contains(姓名, '张') and 年龄 gt 20
复制代码
8. 关于时间的查询。查询出差表中申请日期大于或等于2010年9月20号的出差单。
  1. http://.../OData/GetData/出差?$filter=申请日期 ge 2010-09-20
复制代码
9. 获取人员表中所有行的姓名和年龄字段的数据。
  1. http://.../OData/GetData/人员?$select=姓名,年龄
复制代码
10. 获取人员表中的所有数据。select=*可以省略。
  1. http://.../OData/GetData/人员?$select=*
复制代码


2 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-8-10 18:24:34
沙发
回复 使用道具 举报
nancycui
葡萄城公司职员   /  发表于:2016-8-11 15:46:50
板凳
真棒,为我解决了不少疑问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部