共用方式為


建構數據表設計工具的篩選字串

注意

本文適用於 Azure Azure 雲端服務(外延支援)。 此部署模型將於 2027 年 3 月 31 日淘汰。 如需詳細資訊,請參閱 Azure 更新

在某些情況下,Azure 雲端服務依賴連接字串進行驗證,例如記憶體帳戶。 連接字串和密碼原本就不安全,因為意外暴露或泄露的風險。 Microsoft建議使用受控識別進行驗證,以及 Service Fabric 受控叢集等服務。

若要篩選 Visual Studio 數據表設計工具中顯示的 Azure 數據表中的數據,您可以建構篩選字串,並將其輸入至篩選字段。 篩選字串語法是由 WCF Data Services 所定義,類似於 SQL WHERE 子句,但會透過 HTTP 要求傳送至數據表服務。 數據表設計工具 為您處理適當的編碼方式,因此若要篩選所需的屬性值,您只需要在篩選字段中輸入屬性名稱、比較運算元、準則值,以及選擇性地輸入布爾運算符。 如果您要建構 URL 來透過 $filter查詢資料表,一如您通常會做的那樣,那麼就不需要包含 查詢選項。

WCF 數據服務是以 Open Data Protocol (OData)為基礎。 如需篩選系統查詢選項的詳細數據($filter),請參閱 OData URI 慣例規格。

比較運算子

所有屬性類型都支援下列邏輯運算子:

邏輯運算子 描述 範例篩選字串
情 商 平等 城市 等於 'Redmond'
燃氣輪機 大於 價格大於20
GE 大於或等於 Price ge 10
lt 小於 價格小於20
小於或等於 Price le 100
ne 不相等 城市是「倫敦」
價格小於等於200且價格大於3.5
Price le 3.5 或 Price gt 200
不可用

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

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

篩選字串屬性

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

下列範例會篩選 PartitionKeyRowKey 属性:其他非索引鍵屬性也可以新增至篩選字串:

PartitionKey eq 'Partition1' and RowKey eq '00001'

您可以用括弧括住每個篩選表示式,但並非必要:

(PartitionKey eq 'Partition1') and (RowKey eq '00001')

數據表服務不支援通配符查詢,而且數據表設計工具中也不支援這些查詢。 不過,您可以在所需的前置詞上使用比較運算符來執行前置詞比對。 下列範例會傳回 LastName 屬性開頭為字母 'A' 的實體:

LastName ge 'A' and LastName lt 'B'

篩選數值屬性

若要篩選整數或浮點數,請指定不含引號的數位。

此範例會傳回年齡屬性值大於 30 的所有實體:

Age gt 30

此範例會傳回AmountDue屬性的所有實體,其值小於或等於100.25:

AmountDue le 100.25

篩選布爾屬性

若要篩選布爾值,請指定 true truefalse 不含引號。

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

IsActive eq true

您也可以撰寫此篩選表示式,而不使用邏輯運算符。 在以下範例中,資料表服務也會回傳所有 IsActive 為 true的實體。

IsActive

若要傳回 IsActive 為 false 的所有實體,您可以使用 not 運算子:

not IsActive

篩選日期時間屬性

若要篩選 DateTime 值,請指定 datetime 關鍵詞,後面接著以單引弧括住日期/時間常數。 日期/時間常數必須是 UTC 格式的組合,詳情請參見 格式化 DateTime 屬性值,

下列範例會傳回 CustomerSince 屬性等於 2008 年 7 月 10 日所在的實體:

CustomerSince eq datetime'2008-07-10T00:00:00Z'