katherinebai 发表于 2016-8-10 17:27:15

OData基本的数据库查询(一)

本帖最后由 katherinebai 于 2016-8-10 17:27 编辑

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

为了简单起见,我以URL方式通过示例介绍下其语法。假设数据库中存在一张人员表如下:

基于这张表可以进行以下查询:

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

ZenosZeng 发表于 2016-8-10 18:24:34

:hjyzw:

nancycui 发表于 2016-8-11 15:46:50

真棒,为我解决了不少疑问。
页: [1]
查看完整版本: OData基本的数据库查询(一)