原文出自:http://technet.microsoft.com/zh-cn/magazine/ff683669.aspx
若要筛选 Visual Studio 表设计器中显示在 Windows Azure 表中的数据,可构造一个筛选器字符串并将其输入到筛选器字段中。 筛选器字符串语法由 WCF 数据服务进行定义,与 SQL WHERE 子句类似,但通过 HTTP 请求发送给表服务。 表设计器会为您处理正确的编码以便筛选所需的属性值,您只需要在筛选器字段中输入属性名、比较运算符、条件值以及可选的布尔运算符。 不必将 $filter 查询选项包括在内,因为要通过 Windows Azure Storage Services REST API Reference 构造 URL 查询表。
“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' |
and | 与 | Price le 200 and Price gt 3.5 |
or | 或 | Price le 3.5 or Price gt 200 |
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 the DateTime Property Values中所述。
下面的示例返回 CustomerSince 属性等于 2008-07-10 的实体:
CustomerSince eq datetime'2008-07-10T00:00:00Z'