注意
本文適用於 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 |
不 | 不 | 不可用 |
建構篩選字串時,下列規則很重要:
- 使用邏輯運算符來比較屬性與值。 無法比較屬性與動態值;表達式的一端必須是常數。
- 篩選字串的所有部分都會區分大小寫。
- 常數值必須與 屬性的數據類型相同,篩選條件才能傳回有效的結果。 如需支援之屬性類型的詳細資訊,請參閱 瞭解資料表服務資料模型。
篩選字串屬性
當您篩選字串屬性時,請以單引弧括住字串常數。
下列範例會篩選 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'
篩選數值屬性
若要篩選整數或浮點數,請指定不含引號的數位。
此範例會傳回年齡屬性值大於 30 的所有實體:
Age gt 30
此範例會傳回AmountDue屬性的所有實體,其值小於或等於100.25:
AmountDue le 100.25
篩選布爾屬性
若要篩選布爾值,請指定 true true 或 false 不含引號。
下列範例會傳回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'