為資料表設計工具設計篩選字串架構

注意

本文適用於 Azure 雲端服務 (傳統版),該服務目前針對新客戶已取代,並將於 2024 年 8 月 31 日淘汰。 使用此技術建置的現有服務仍可透過雲端服務 (延伸支援)獲得支援。。 針對新的開發,我們建議您使用專為特定用途設計的較新服務類型,例如 Azure App ServiceAzure FunctionsAzure 容器應用程式。 如需可用服務的最新清單,請參閱 Azure 產品的目錄

若要在 Visual Studio [資料表設計工具] 中顯示的 Azure 資料表中篩選資料,您可以建構篩選字串並在篩選欄位中輸入它。 篩選條件字串語法由 WCF Data Services 定義,類似於 SQL WHERE 子句,但會透過 HTTP 要求傳送至表格服務。 [資料表設計工具] 會為您處理適當的編碼,因此,若要篩選所需的屬性值,您只需要在篩選欄位中輸入屬性名稱、比較運算子、準則值和 (選擇性) 布林運算子。 您不需要像透過 儲存體服務 REST API 參考建構 URL 來查詢資料表一樣包含 $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 and Price gt 3.5
Or Price le 3.5 or Price gt 200
not Not not isAvailable

建構篩選字串時,下列規則很重要:

  • 使用邏輯運算子來比較屬性與值。 無法比較屬性與動態值;運算式的一端必須是常數。
  • 篩選字串的所有部分都區分大小寫。
  • 常數和屬性必須是相同的資料類型,篩選才能傳回有效的結果。 如需支援的屬性類型的詳細資訊,請參閱 了解表格服務資料模型

篩選字串屬性

當您篩選字串屬性時,請用單引號括住字串常數。

下列範例會篩選 PartitionKeyRowKey 屬性。額外的非索引鍵屬性也可以加入至篩選字串:

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

篩選布林值屬性

若要篩選布林值,請指定 truefalse 且不加引號。

下列範例會傳回 IsActive 屬性設定為 true的所有實體:

IsActive eq true

您也可以不加邏輯運算子來撰寫這個篩選運算式。 在下列範例中,表格服務也會傳回 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'