支援的 OData 函式和子句
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
本文涵蓋 Analytics 如何支援數個 OData 函式。 也列出不支援的函式。 OData (開放式數據通訊協定) 是 ISO/IEC 核准的 OASIS 標準,可定義建置和取用 REST API 的最佳做法。 如需詳細資訊,請參閱 OData 檔。
注意
所有 Azure DevOps Services 的生產環境中都會自動啟用及支援 Analytics 服務。 Power BI 整合 及存取 Analytics Service 的 OData 摘要 已正式推出。 我們鼓勵您使用它,並提供意見反應給我們。
可用的數據與版本相關。 最新支援的版本是 v2.0
,而最新的預覽版本是 v4.0-preview
。 如需詳細資訊,請參閱 OData API 版本控制。
注意
Azure DevOps Server 2020 和更新版本的所有新專案集合都會在生產環境中自動安裝並支援 Analytics 服務。 Power BI 整合 及存取 Analytics Service 的 OData 摘要 已正式推出。 我們鼓勵您使用它,並提供意見反應給我們。 如果您從 Azure DevOps Server 2019 升級,則可以在升級期間安裝 Analytics 服務。
可用的數據與版本相關。 最新支援的版本是 v2.0
,而最新的預覽版本是 v4.0-preview
。 如需詳細資訊,請參閱 OData API 版本控制。
注意
Azure DevOps Server 2019 的 Analytics 服務處於預覽狀態。 您可以 啟用或安裝 專案集合。 Power BI 整合 和分析 服務的 OData 摘要 存取處於預覽狀態。 我們鼓勵您使用它,並提供意見反應給我們。
可用的數據與版本相關。 最新支援的版本是 v2.0
,而最新的預覽版本是 v4.0-preview
。 如需詳細資訊,請參閱 OData API 版本控制。
支援的子句
$apply
$compute
$count
$expand
$filter
$orderby
$select
$skip
$top
在查詢中使用多個子句時,會依上述指定的順序套用這些子句。 查詢字串中的 子句順序會被忽略。 例如,在下列查詢中,工作專案會先分組並匯總。 接下來,會篩選群組。 之後,會排序篩選的群組。 最後,會傳回前五筆記錄。 查詢會傳回使用至少 100 次的前五個工作項目類型。
WorkItems?$filter=Count ge 100&$apply=groupby((WorkItemType), aggregate($count as Count))&$orderby=Count&top=5
匯總延伸模組支援
它會採用一連串的集合轉換,並以正斜線分隔,表示它們已連續套用。 每個轉換的結果都是下一個轉換的輸入。 例如,在下列查詢中,會篩選工作專案,然後依工作專案類型和狀態分組。 接下來,系統會篩選群組並再次分組。
注意
OData 匯總延伸模組相對較新,但某些用戶端工具尚未完全支援。
Workitems?$apply=filter(State ne 'Closed')/groupby((WorkItemType, State), aggregate($count as Count))/filter(Count gt 100)/groupby((State),aggregate(Count with max as MaxCount))
支援下列轉換:
轉換 | 備註 |
---|---|
aggregate |
允許使用下列其中一種方法$count 、、average 、max 、 min sum |
compute |
允許新增匯出屬性 |
expand |
允許依指定的屬性展開 |
filter |
允許篩選輸入集。 支援與 相同的表達式 $filter |
groupby |
允許依屬性分組 |
如需詳細資訊,請參閱 匯總工作追蹤數據。
支援的函數
標準函式 | 描述 |
---|---|
cast |
傳回目前實例轉換成指定之型別的表達式。 |
contains |
如果第二個參數位符串值是第一個參數位符串值的子字串,則傳回 true,否則會傳回 false。 |
endswith |
如果第一個參數位符串值以第二個參數位符串值結尾,則傳回 true,否則會傳回 false。 |
startswith |
如果第一個參數位符串值以第二個參數位符串值開頭,則傳回 true,否則會傳回 false。 |
length |
傳回參數值中的字元數。 |
indexof |
傳回第一個參數值中第一次出現第二個參數值之以零起始的字元位置,如果第一個參數值未出現在第一個參數值中,則傳回 -1。 |
substring |
傳回第一個參數位符串值的子字串,從第 N 個字元開始,最後一個字元結束 (其中 N 是第二個參數整數值)。 |
tolower |
傳回輸入參數位符串值,並將所有大寫字元轉換成小寫。 |
toupper |
傳回輸入參數位符串值,其中包含轉換成大寫的所有小寫字元。 |
trim |
傳回所有開頭和結尾空格符的輸入參數位符串值。 |
year |
會傳回 Date 或 DateTimeOffset 參數值的年份元件。 |
month |
傳回 Date 或 DateTimeOffset 參數值的月份元件。 |
day |
會傳回 Date 或 DateTimeOffset 參數值的日期元件。 |
date |
傳回 DateTimeOffset 參數值的日期部分。 |
time |
傳回 DateTimeOffset 參數值的時間部分。 |
totaloffsetminutes |
傳回 DateTimeOffset 參數值的時區位移部分的帶正負號分鐘數。 |
now |
以 DateTimeOffset 值傳回目前時間點(具有時區的日期和時間)。 |
maxdatetime |
以 DateTimeOffset 值的形式傳回最新的可能時間點。 |
mindatetime |
傳回最早可能的時間點做為 DateTimeOffset 值。 |
OData 函式會用於 $filter
子句中,但不是在 $select
子句中使用 SQL 語句的方式。
例如,您可以指定:
/WorkItems?$filter=toupper(Title) eq 'HELP'
不過,您無法輸入下列字串:
/WorkItems?$select=WorkItemId,State,toupper(Title)
不支援的功能
bottomcount
bottomsum
bottompercent
$crossjoin
concat
countdistinct
from
isdefined
$rollup
$search
topcount
topsum
toppercent