为表设计器构造筛选字符串
注意
本文适用于 Azure 云服务(经典版),该服务现已对新客户弃用,将于 2024 年 8 月 31 日停用。 通过 Azure 云服务(扩展支持),仍支持使用这项技术构建的现有服务。 对于新开发,我们建议使用专为特定目的设计的较新服务类型,例如 Azure 应用服务、Azure Functions 或 Azure 容器应用。 有关可用服务的最新列表,请参阅 Azure 产品的目录。
要筛选 Visual Studio 表设计器中显示在 Azure 表中的数据,可以构造一个筛选器字符串并将其输入到筛选器字段中。 筛选器字符串语法由 WCF 数据服务进行定义,与 SQL WHERE
子句类似,但通过 HTTP 请求发送给表服务。 表设计器会处理正确的编码,因此,要筛选所需的属性值,只需要在筛选器字段中输入属性名、比较运算符、条件值以及可选的布尔运算符。 无需像构造 URL 以通过存储服务 REST API 参考来查询表时那样包括 $filter
查询选项。
WCF 数据服务基于开放数据协议 (OData)。 有关筛选器系统查询选项 ($filter) 的详细信息,请参阅 OData URI Conventions specification(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 and Price gt 3.5 |
或 | 或 | Price le 3.5 or Price gt 200 |
not | Not | not isAvailable |
构造筛选器字符串时,以下规则非常重要:
- 使用逻辑运算符可将属性与值进行比较。 无法比较属性和动态值;表达式的一侧必须是常量。
- 筛选器字符串的所有部分都区分大小写。
- 常量值的数据类型必须与属性的类型相同,这样筛选器才能返回有效的结果。 有关支持的属性类型的详细信息,请参阅 Understanding the Table Service Data Model(了解表服务数据模型)。
针对字符串属性进行筛选
当对字符串属性进行筛选时,用单引号将字符串常量括起来。
以下示例对 PartitionKey 和 RowKey 属性进行筛选;也可以将其他非键属性添加到筛选器字符串中:
PartitionKey eq 'Partition1' and RowKey eq '00001'
可以用圆括号将每个筛选器表达式括起来,但这并非必需:
(PartitionKey eq 'Partition1') and (RowKey eq '00001')
表服务不支持通配符查询,而表设计器中也不支持这些查询。 但是,可以通过对所需前缀使用比较运算符来执行前缀匹配。 下面的示例返回 LastName 属性以字母“A”开头的实体:
LastName ge 'A' and LastName lt 'B'
针对数值属性进行筛选
若要对整数或浮点数进行筛选,请指定不带引号的数字。
此示例将返回 Age 属性值大于 30 的所有实体:
Age gt 30
此示例将返回 AmountDue 属性值小于或等于 100.25 的所有实体:
AmountDue le 100.25
针对布尔值属性进行筛选
若要对布尔值进行筛选,请指定 true 或 false(不带引号)。
以下示例将返回 IsActive 属性设置为 true 的所有实体:
IsActive eq true
也可以在不使用逻辑运算符的情况下编写此筛选器表达式。 在以下示例中,表服务还将返回 IsActive 为 true 的所有实体:
IsActive
若要返回 IsActive 为 false 的所有实体,可以使用 not
运算符:
not IsActive
针对日期时间属性进行筛选
若要对日期时间值进行筛选,请指定 datetime 关键字,后接单引号括起来的日期/时间常量。 日期/时间常量必须采用组合的 UTC 格式,如 Formatting DateTime Property Values(设置 DateTime 属性值格式)中所述。
以下示例将返回 CustomerSince 属性等于 2008-07-10 的实体:
CustomerSince eq datetime'2008-07-10T00:00:00Z'
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈