为表设计器创建过滤器字符串
备注
本文适用于 Azure Azure 云服务(扩展支持)。 云服务(经典版)自 2024 年 8 月 31 日起停用。 有关详细信息,请参阅 云服务(经典)部署模型将于 2024 年 8 月 31 日停用。 对于新开发,我们建议使用专为特定目的设计的较新服务类型,例如 Azure 应用服务、Azure Functions或 Azure 容器应用。 有关可用服务的最新列表,请参阅 Azure 产品目录 。
若要筛选 Visual Studio 表设计器中显示的 Azure 表中的数据,请构造筛选器字符串并将其输入到筛选器字段中。 筛选器字符串语法由 WCF 数据服务定义,类似于 SQL WHERE
子句,但通过 HTTP 请求发送到表服务。 表设计器 处理正确的编码,因此若要根据所需的属性值进行筛选,只需在筛选器字段中输入属性名称、比较运算符、条件值和布尔运算符(可选)。 不需要像构造 URL 以通过存储服务 REST API 参考来查询表时那样包括 $filter
查询选项。
WCF 数据服务基于 开放数据协议(OData)。 有关筛选器系统查询选项($filter)的详细信息,请参阅 OData URI 约定规范。
比较运算符
所有属性类型都支持以下逻辑运算符:
逻辑运算符 | 描述 | 示例筛选器字符串 |
---|---|---|
eq | 等于 | City eq 'Redmond' |
gt | 大于 | Price gt 20 |
ge | 大于或等于 | Price ge 10 |
lt | 小于 | Price lt 20 |
le | 小于或等于 | Price le 100 |
ne | 不等于 | City ne 'London' |
和 | 且 | Price le 200 和 Price gt 3.5 |
or | Or | Price le 3.5 or Price gt 200 |
不 | 不 | not isAvailable |
构造筛选器字符串时,以下规则非常重要:
- 使用逻辑运算符将属性与值进行比较。 无法将属性与动态值进行比较;表达式的一侧必须是常量。
- 筛选器字符串的所有部分都区分大小写。
- 常量值必须与属性具有相同的数据类型,以便筛选器返回有效结果。 有关支持的属性类型的详细信息,请参阅 了解表服务数据模型。
对字符串属性进行筛选
筛选字符串属性时,请将字符串常量括在单引号中。
以下示例对 PartitionKey 和 RowKey 属性进行筛选;还可以将其他非键属性添加到筛选器字符串:
PartitionKey eq 'Partition1' and RowKey eq '00001'
可以将每个筛选器表达式括在括号中,尽管这不是必需的:
(PartitionKey eq 'Partition1') and (RowKey eq '00001')
表服务不支持通配符查询,表设计器也不支持它们。 但是,可以通过对所需前缀使用比较运算符来执行前缀匹配。 以下示例返回以字母“A”开头的 LastName 属性的实体:
LastName ge 'A' and LastName lt 'B'
对数值属性进行筛选
若要筛选整数或浮点数,请指定没有引号的数字。
此示例返回值为大于 30 的 Age 属性的所有实体:
Age gt 30
此示例返回值为小于或等于 100.25 的 AmountDue 属性的所有实体:
AmountDue le 100.25
对布尔属性进行筛选
若要根据布尔值进行筛选,请指定 true 或 false 而不带引号。
以下示例返回 IsActive 属性设置为 true true的所有实体:
IsActive eq true
还可以在没有逻辑运算符的情况下编写此筛选器表达式。 在以下示例中,Table 服务还将返回 IsActive 为 true 的所有实体:
IsActive
若要返回 IsActive 为 false 的所有实体,可以使用 not
运算符:
not IsActive
对 DateTime 属性进行筛选
若要筛选 DateTime 值,请指定 datetime 关键字,后跟单引号中的日期/时间常量。 日期/时间常量必须采用组合 UTC 格式,如 设置 DateTime 属性值中所述。
以下示例返回 CustomerSince 属性等于 2008 年 7 月 10 日的实体:
CustomerSince eq datetime'2008-07-10T00:00:00Z'