查询 Azure Boards 中的字段、运算符和宏

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

本文介绍每个字段数据类型、查询运算符和查询宏。 某些数据类型、运算符和宏仅对指定的 Azure DevOps 版本有效。

有关详细信息,请参阅查询快速参考以及管理和组织查询

查询字段数据类型和值

为字段指定的值必须符合该字段的数据类型。 下表列出支持的数据类型:

注意

对于 Azure Boards 云服务,数据类型对应于“流程”>“字段”页上为字段列出的数据类型。 对于本地部署,数据类型对应于分配给 FIELD 定义type 属性。 有关详细信息,请参阅工作项字段和字段属性

数据类型

描述

布尔值

指定采用 True/False 值的字段。

日期/时间

一个日期字段,可在其中指定变量(例如 @Today@Today-1)或值(例如 01/01/2025)。 在为个人配置文件设置的“日期模式”中输入日期。 (有关详细信息,请参阅设置个人首选项。)有关查询示例,请参阅 Query by date or @CurrentIteration

对于 WIQL 查询,还可以指定采用协调世界时 (UTC) 模式的日期。 有关详细信息,请参阅工作项查询语言 (WIQL) 的语法

双精度十进制

一个实数,如 0.2 或 3.5。 有关查询示例,请参阅按数值字段进行查询

GUID

一个表示唯一 ID 的字符串。

History

用于跟踪历史信息的自定义格式的字段。 此数据类型仅用于支持“历史记录”字段。 当全文搜索可用时,该字段在进行全文搜索时可自动创建索引。 请查阅本文后面所述的全文搜索和部分单词搜索。 有关查询示例,请参阅历史记录和审核

HTML

支持格式化说明的文本字符串,如说明重现步骤字段。 当全文搜索可用时,这些字段在进行全文搜索时可自动创建索引。 请查阅本文后面所述的全文搜索和部分单词搜索。 若要查询富文本字段,请参阅按标题、ID 和富文本字段进行查询

标识

标识用户身份的短文本字符串。

整数

一个 32 位有符号整数,如 0、1、2、34。

纯文本文本字段(多行)

支持较长说明的文本字符串,例如“应用程序启动信息”字段。 当全文搜索可用时,这些字段在进行全文搜索时可自动创建索引。 请查阅本文后面所述的全文搜索和部分单词搜索。 若要查询纯文本字段,请参阅按标题、ID 和富文本字段进行查询

picklistDouble

定义为包含十进制值的选取列表的自定义字段。

picklistInteger

定义为包含整数值的选取列表的自定义字段。

picklistString

定义为包含短文本字符串(255 个字符或更少)值选取列表的自定义字段。

字符串文本字段(单行)

最多包含 255 个 Unicode 字符的短文本字符串。 字符串文本字段通常用于支持选取列表或下拉菜单。

TreePath

一个分支树结构,如“区域路径”或“迭代路径”。 从有效值列表中选择一项。 查找等于、不等于、低于或不在树结构下的工作项。 你还可以使用 InNot In 运算符指定多个值。 定义项目的树结构(区域路径迭代路径),然后选择要与团队关联的树结构。

有关构造查询的详细信息,请参阅按区域或迭代路径进行查询按日期或当前迭代进行查询

注意

picklist... 数据类型仅分配给为继承流程定义的自定义字段。

日期和时间模式

日期/时间字段输入的日期和时间模式应与通过配置文件选择的日期和时间模式匹配。 要查看或更改选择,请参阅设置用户首选项

显示“时间和区域设置”窗格上的“日期模式”下拉列表选项的屏幕截图。显示“时间和区域设置”窗格上的“时间模式”下拉列表选项的屏幕截图。

显示“时间和区域设置”窗格以及“日期”模式和“时间模式”字段的屏幕截图。

查询运算符

使用下表中的查询运算符指定子句中的每个值必须如何与工作项中的对应值相关。 有关分配给工作项字段的数据类型的信息,请参阅工作项字段参考

有关详细信息,请参阅定义查询

查询运算符

如果工作项中的值与列出的条件匹配,则返回工作项

适用的数据类型

=

与子句中的值匹配。

数字(包括双精度GUID整数)、字符串日期/时间TreePath

<>

与子句中的值不匹配。

数字字符串日期/时间TreePath

>

大于子句中的值。

数字字符串日期/时间

<

小于子句中的值。

数字字符串日期/时间

>=

大于或等于子句中的值。

数字字符串日期/时间

<=

小于或等于子句中的值。

数字字符串日期/时间

=[Field]

与指定字段中包含的值匹配。

与指定字段具有相同数据类型的字段的名称
检查布尔字段是否等于另一个字段

<>[Field]

与指定字段中包含的值不匹配。

与指定字段具有相同数据类型的字段的名称
检查布尔字段是否不等于另一个字段

>[Field]

大于指定字段中包含的值。

与指定字段具有相同数据类型的字段的名称

<[Field]

小于指定字段中包含的值。

与指定字段具有相同数据类型的字段的名称

>=[Field]

大于或等于指定字段中包含的值。

与指定字段具有相同数据类型的字段的名称

<=[Field]

小于或等于指定字段中包含的值。

与指定字段具有相同数据类型的字段的名称

Contains

在你为筛选而选择的字段中包含文本字符串的完全或部分匹配。

字符串

Does Not Contain

在你为筛选而选定的字段中不包含文本字符串的完全或部分匹配。

字符串

包含字词

在你为筛选而选定的字段内包含准确的文本字符串或字。 也可输入包含通配符“*”的部分单词或短语。 文本字符串长度限制在 100 个字符以内。 有关限制,请参阅全文搜索了解服务器和排序规则要求。

编制索引以进行全文搜索的长文本字段,全文搜索对应于所有纯文本HTML 字段以及“历史记录”和“标题”字段。

不包含单词

在你为筛选而选定的字段中不包含准确的文本字符串或字。 文本字符串长度限制在 100 个字符以内。

将此运算符与 Contains Words 运算符的子句一起使用,可包含和排除特定关键字。

在进行全文搜索时编制索引的文本字段。

位于

与分隔的集合中的任何值匹配。 例如,如果为 ID 字段指定值 100、101 和 102,则可查找 ID 为这些值的工作项。 用列表分隔符分隔值,列表分隔符与为你的客户端计算机定义的区域设置相对应。 例如,可以使用逗号 ,

数字字符串日期/时间TreePath

Is Empty

列出包含空 HTML 字段的工作项。 不要使用此运算符指定值。 Azure Boards 和 Azure DevOps Server 支持此运算符。

HTML

Is Not Empty

列出 HTML 字段中包含某些内容的工作项。 不要使用此运算符指定值。 Azure Boards 和 Azure DevOps Server 支持此运算符。

HTML

不位于

与分隔的集合中的任何值均不匹配。 如果为“状态”字段指定了这些值,则可以从查询结果中排除状态为“已解决”、“已完成”或“已关闭”的工作项。 用列表分隔符分隔值,列表分隔符与为你的客户端计算机定义的区域设置相对应。 例如,可以使用逗号 ,

Azure Boards 和 Azure DevOps Server 支持 Not In 运算符。

数字字符串日期/时间TreePath

在组中

与作为子句中组的成员的值匹配。 组对应于团队、安全组或工作跟踪类别的名称。 例如,你可以创建一个查询,用来查找分配给 Contributors 组成员或分配给团队的所有工作项。 在创建团队时创建团队组。 团队组的名称遵循模式“[团队项目名称]\团队名称”。

有关示例查询,请参阅按分配或工作流更改进行查询

与系统中定义的团队、安全组或类别的名称匹配的字符串

注意

只能将“In Group”运算符与“字符串”数据类型的字段或“工作项类型”字段一起使用。 当 Azure Boards 帐户受 Microsoft Entra ID 支持时,还可以使用 Microsoft Entra ID 中定义的组;如果本地服务器实例受 Active Directory 支持,则使用 Active Directory。

有关详细信息,请参阅使用类别对工作项类型进行分组

不在组中

与作为子句中组的成员的值不匹配。

与 Azure DevOps Server 中的用户组名称或为项目定义的类别组相匹配的字符串

注意

只能将“Not In Group”运算符与使用“字符串”数据类型的字段或“工作项类型”字段一起使用。 当 Azure Boards 帐户受 Microsoft Entra ID 支持时,还可以使用 Microsoft Entra ID 中定义的组;如果本地服务器实例受 Active Directory 支持,则使用 Active Directory。

不小于

与子句中的值不匹配并且未包含在子句中的节点之下。

TreePath

Under

与子句中的值匹配或包含在子句中节点之下。

TreePath

曾是

在以前任意时间与子句中的值匹配。

字符串日期/时间

注意

若使用查询编辑器,日期字段上的 Was Ever 当前不受支持。 仅在执行直接 WIQL 时,才受支持。

提示

对于列出的其他数据类型字段,可以使用 WIQL 语法(如 Was Ever)构造查询。 例如,可以在使用“迭代路径”的子句中使用“Was Ever”。 有关示例,请参阅按日期或当前迭代进行查询,列出从冲刺移出的工作项

查询宏或变量

可以使用下表中所述的宏根据特定字段筛选查询。

注意

以下宏仅在 Web 门户中受支持:@CurrentIteration@CurrentIteration +/- n@Follows@MyRecentActivity@RecentMentions@RecentProjectActivity 以及 @TeamAreas。 在 Visual Studio/团队资源管理器、Microsoft Excel 或 Microsoft Project 中打开时,包含这些宏的查询将不起作用。


说明


[Any]

与“工作项类型”或“状态”字段一起使用,可跨所有工作项类型或所有状态进行搜索。 例如,Work Item Type=[Any] 不会基于工作项类型放置任何筛选器。


@CurrentIteration

与“迭代路径”字段一起使用,可根据当前团队焦点或上下文自动筛选分配给当前冲刺的工作项。 有关特定示例,请参阅按日期或当前迭代进行查询
仅当从 Web 门户运行时,@CurrentIteration 宏才有效。 在复制或克隆测试套件和测试用例定义警报或使用 REST API 时,不能使用宏。


@CurrentIteration +/- n

与“迭代路径”字段一起使用,可根据当前团队焦点或上下文自动筛选分配给当前冲刺 +/- n 个冲刺的工作项集合。 有关特定示例,请参阅按日期或当前迭代进行查询
仅当从 Web 门户运行时,Azure Boards、Azure DevOps Server 才支持 @CurrentIteration +/- n 宏。


@Follows

与“ID”字段和“In”运算符一起使用,可列出你在项目中关注的所有工作项。 有关详细信息,请参阅跟进工作项或拉取请求。 可以从“工作项”页的“关注”透视视图中查看此同一列表。
仅当从 Web 门户运行时,才支持 @Follows 宏。


@Me

与标识或用户帐户字段一起使用,可自动搜索与用户或帐户名称关联的项目。 例如,可以找到使用 Created By=@Me 子句打开的工作项。 有关更多示例,请参阅按分配、工作流或看板更改进行查询


@MyRecentActivity

ID 字段和 In 运算符一起使用,可列出过去 30 天内你在项目中查看或更新过的工作项。 可以从“工作项”页的“我的活动”透视视图中查看此同一列表。


@Project

与“团队项目”字段一起使用,可筛选其他项目中的工作项。 例如,可以使用 Team Project=@Project 子句查找当前所选项目中的所有工作项。 系统自动默认为基于当前项目进行筛选。 有关详细信息,请参阅定义查询,跨项目查询


@RecentMentions

ID 字段和 In 运算符一起使用,可列出“讨论”部分中提及你的工作项。 可以从“工作项”页的“提及”透视视图中查看此同一列表。


@RecentProjectActivity

ID 字段和 In 运算符一起使用,以列出最近更新的工作项。 列出的工作项数取决于项目的工作跟踪活动。 对于高度活跃的项目,宏会列出在过去 30 天左右内在项目中更新的工作项。 但是,对于不太活跃的项目,此列表可能包含超过 30 天的工作项。 可以从“工作项”页、“最近创建”、“最近更新”和“最近完成”透视视图中查看类似的列表。 返回的工作项数上限为 5000。


@StartOfDay

DateTime 字段一起使用,可筛选与当前日期相关或具有正/负偏移量的工作项。 例如,可以使用 Closed Date&gt;=@StartOfDay-7 子句查找上周关闭的所有项。 有关更多示例,请参阅按日期或当前迭代进行查询


@StartOfMonth

DateTime 字段一起使用,可筛选与当前月份相关或具有正/负偏移量的工作项。 例如,可以使用 Created Date&gt;=@StartOfMonth-3 子句查找在过去三个月内创建的所有项。 有关更多示例,请参阅按日期或当前迭代进行查询


@StartOfWeek

DateTime 字段一起使用,可筛选与当前星期相关或具有正/负偏移量的工作项。 例如,可以使用 Changed Date&gt;=@StartOfWeek-2 子句查找过去两周内更改的所有项。 有关更多示例,请参阅按日期或当前迭代进行查询


@StartOfYear

DateTime 字段一起使用,可筛选与当前年度相关或具有正/负偏移量的工作项。 例如,可以使用 Target Date&gt;=@StartOfYear 子句查找目标日期安排在当前年度内的所有功能。 有关更多示例,请参阅按日期或当前迭代进行查询


@TeamAreas

仅与“区域路径”字段一起使用,可筛选其区域路径与分配给特定团队的区域路径对应的工作项。 要求使用 = 运算符。 例如,可以使用 Area Path=@TeamAreas [Fabrikam Fiber]\Web 子句查找分配给已指派给 Web 团队的区域路径的所有项。 有关更多示例,请参阅按区域或迭代路径查询
仅当从 Web 门户运行时,Azure DevOps Server 才支持 @TeamAreas 宏。


@Today

DateTime 字段一起使用,可筛选与当前日期或更早日期相关的工作项。 还可以通过减去天数来修改 @Today 宏。 例如,可以使用 Created Date&gt;=@Today-7 子句查找上周创建的所有项。 有关更多示例,请参阅按日期或当前迭代进行查询


全文和部分单词搜索

指定“Contains”或“Does Not Contain”以搜索词或短语的精确或部分匹配项。 这些运算符基于为长文本字段创建的全文搜索索引来筛选项。 指定“Contains”或“Does Not Contain”以搜索精确短语或使用通配符 * 这些运算符使用全文搜索索引。 只能在部分单词或短语的末尾使用通配符。

有关示例,请参阅工作项查询示例使用“历史记录”字段查询工作项

注意

并非所有部署都支持全文搜索。 例如,SQL Express 和 SQL Azure,二者支持云服务,但不支持全文搜索。 在这些情况下,只会看到“Contains”和“Does not Contain”运算符

Azure DevOps Server 自动为数据类型为纯文本HTML 的所有长文本字段以及标题字段编制索引,以进行全文搜索。 只有在支持 Azure DevOps Server 的 SQL Server 支持全文搜索时,索引和运算符才可用。

全文搜索需要使用 SQL 排序规则(与在 SQL Server 注册了分词系统的语言对应)。 如果用于 Azure DevOps Server 实例的项目集合数据库的排序规则设置与所支持的语言不对应,你的搜索结果可能将与预期不符。 在这些情况下,你可能需要尝试使用“Contains”或“Does not Contain”运算符。

有关详细信息,请参阅全文搜索查询和排序规则设置

REST API

要以编程方式与查询交互,请参阅以下 REST API 资源之一: