查询字段、运算符和宏

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020

本文介绍在查询编辑器中使用的字段数据类型、查询运算符和查询宏。 某些类型、运算符和宏仅适用于特定的 Azure DevOps 版本。

有关快速示例和编辑器任务,请参阅查询快速参考管理和组织查询

先决条件

类别 要求
访问级别 - 若要查看和运行共享查询:项目成员
- 要添加并保存共享查询:至少具有基本访问权限。
权限 对于要添加查询的文件夹,请将参与权限设置为允许。 默认情况下,“参与者”组没有此权限。

注意

具有公共项目的 利益相关者 访问权限的用户对查询功能具有完全访问权限,就像具有 基本 访问权限的用户一样。 有关详细信息,请参阅利益干系人访问快速参考

类别 要求
访问级别 - 若要查看和运行共享查询:项目成员
- 要添加并保存共享查询:至少具有基本访问权限
权限 对于要添加查询的文件夹,请将参与权限设置为允许。 默认情况下,“参与者”组没有此权限。

查询字段数据类型和值

必须指定与字段的数据类型匹配的值。 下表列出了支持的数据类型:

注意

对于 Azure Boards(云),数据类型与“ 进程 > 字段”页上显示的字段匹配。 对于本地部署,数据类型对应于type定义中的FIELD属性。 有关详细信息 ,请参阅“工作项”字段和字段属性

数据类型

说明

布尔值

存储 True/False 值。

日期时间日期/时间

使用日期变量(例如, @Today@Today-1)或显式日期,例如 01/01/2025。 在您的个人资料中设定的格式中输入日期。 有关查询示例,请参阅 Query by date or @CurrentIteration
对于 WIQL 查询,还可以以 UTC 格式指定日期。 请参阅 工作项查询语言(WIQL)的语法

双精度十进制

存储实数,例如 0.2 或 3.5。 有关示例,请参阅 “按数值字段查询 ”。

GUID

存储唯一标识符字符串。

历史记录

用于历史信息的自定义格式化字段( 历史记录 字段)。 当全文搜索可用时,此字段会为全文查询编制索引。 请参阅 历史记录和审核

HTML

存储格式化文本(例如 说明重现步骤)。 当全文搜索可用时,这些字段将编制索引。 若要查询富文本字段,请参阅按标题、ID 和富文本字段进行查询

标识

存储标识用户标识的短文本字符串。

整数

存储有符号 32 位整数(例如 0、1、2、34)。

纯文本文本字段(多行)

存储长文本值(例如 ,应用程序启动信息)。 这些字段在受支持时为全文搜索编制索引。 请参阅 按标题、ID 和格式文本字段进行的查询

picklistDouble

保存十进制值的选取列表的自定义字段。

picklistInteger

保存整数值的选取列表的自定义字段。

picklistString

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

字符串文本字段(单行)

存储最多 255 个 Unicode 字符的短文本。 Teams 通常会将这些字段用于选择列表或下拉菜单。

TreePath

表示分支树(例如,区域路径或迭代路径)。 选择有效的节点值。 可以筛选相等性、不相等性、“Under”/“Not Under”,或使用 In / Not In 运算符指定多个值。 定义项目的树结构(区域路径迭代路径),然后选择要与团队关联的节点。 有关查询示例,请参阅 “按区域或迭代路径查询 ”和 “按日期或当前迭代查询”。

注意

这些 picklist... 类型仅适用于为继承进程定义的自定义字段。

日期和时间模式

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

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

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

查询运算符

使用运算符来定义子句的值应该如何与工作项的字段值相关。 有关字段数据类型,请参阅 “工作项”字段引用。 有关生成查询的帮助,请参阅 “定义查询”。

查询运算符

当运算符返回匹配的工作项时

适用的数据类型

=

匹配子句值。

Number (Double/Decimal/GUID/Integer)、String、DateTime、TreePath

<>

与子句值不匹配。

Number、String、DateTime、TreePath

>

大于条件值。

数字、字符串、日期时间

<

小于条件子句值。

数字、字符串、日期时间

>=

大于或等于条款值。

数字、字符串、日期时间

<=

小于或等于条件值。

数字、字符串、日期时间

=[Field]

匹配另一个指定字段中的值(必须是相同的数据类型)。

相同数据类型的字段的名称(布尔字段将相等性与其他字段进行比较)。

<>[字段]

与另一个指定字段中的值不匹配。

相同数据类型的字段的名称。

>[字段]

大于另一个指定字段中的值。

相同数据类型的字段的名称。

<[字段]

小于另一个指定字段中的值。

相同数据类型的字段的名称。

>=[字段]

大于或等于另一个指定字段中的值。

相同数据类型的字段的名称。

<=[字段]

小于或等于另一个指定字段中的值。

相同数据类型的字段的名称。

包含

包含精确或部分文本匹配。

String

不包含

不包含精确或部分文本匹配项。

String

包含字词

匹配确切的短语或单词(支持尾随通配符 *)。 限制:100 个字符。 此运算符使用全文索引;有关服务器和排序规则要求,请参阅本文中的全文部分。

为全文搜索编制索引的长文本字段(纯文本、HTML、历史记录和标题)。

不包含字词

排除包含指定短语或字词的项。 限制:100 个字符。 在关联子句中使用 Contains Words 以包含或排除关键字。

为全文搜索编制索引的文本字段。

位于

匹配分隔集中的任何值(使用你的操作系统中的区域列表分隔符,通常是逗号)。

Number、String、DateTime、TreePath

为空

匹配 HTML 字段不包含任何内容(未指定值)的项目。 支持 Azure Boards 和 Azure DevOps Server。

HTML

不为空

匹配 HTML 字段包含内容的项。 支持 Azure Boards 和 Azure DevOps Server。

HTML

不位于

排除在一个使用区域列表分隔符分隔的集合中的值。 支持 Azure Boards 和 Azure DevOps Server。

Number、String、DateTime、TreePath

在组中

匹配指定组(团队、安全组或类别)的成员的值。 例如,使用命名为 [Project Name]\Team Name 模式的参与者组或团队组。 有关示例,请参阅 “按分配或工作流更改查询 ”。

字符串(匹配组名或团队名)或工作项类型

注意

仅对字符串类型字段或工作项类型使用 In Group 。 在帐户使用 Microsoft Entra ID 时,可以使用 Microsoft Entra ID 组;对于本地部署,可以使用 Active Directory 组。 :::column-end:::

不在组中

排除属于指定名称组的成员。

与用户组或项目类别匹配的字符串。

不小于

排除等于或包含在指定树节点下的项目。

TreePath

小于

匹配等于或包含在指定树节点下的项。

TreePath

曾是

匹配字段在任意过去时间点持有的值。

字符串、日期时间

注意

查询编辑器当前不支持 Was Ever 的日期字段,对于这些情况,请直接使用 WIQL。 :::column-end:::

提示

可以针对其他数据类型(例如迭代路径)构造使用运算符(例如 Was Ever)的 WIQL 查询。 请参阅 移出冲刺的工作项列表 以获取示例。

查询宏和变量

使用以下宏动态筛选查询。

注意

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


说明


[任意]

工作项类型状态 一起使用可跨所有类型或状态进行搜索。 例如, Work Item Type=[Any] 删除基于类型的筛选。


@CurrentIteration

迭代路径 一起使用,根据当前团队上下文筛选当前冲刺中的工作项。 有关示例,请参阅 按日期或当前迭代进行的查询@CurrentIteration 仅在从 Web 门户运行时有效,不包括在 REST API 或某些复制/克隆操作中。


@CurrentIteration +/- n

迭代路径 一起使用,以包含相对于当前迭代的冲刺(例如, @CurrentIteration-1@CurrentIteration+2)。 在 Azure Boards 和 Azure DevOps Server 的 Web 门户中受支持。


@Follows

IDIn 运算符一起使用,以列出项目中您关注的工作项。 请参阅 跟踪工作项或拉取请求。 此宏仅适用于 Web 门户。


@Me

与标识字段一起使用,以便筛选与您的帐户相关联的项目(例如,Created By=@Me)。 请参阅 “按分配、工作流或板式更改查询”。


@MyRecentActivity

ID 一起使用,并使用 In 列出您在过去大约 30 天内查看或更新的工作项。 有关同一列表,请参阅“工作项”页 “我的活动 透视表。


@Project

团队项目 一起使用可筛选当前项目中的工作项(例如, Team Project=@Project)。 请参阅 跨项目查询


@RecentMentions

使用 IDIn 列出你在讨论中被提及的工作项。 请参阅“工作项”页 提及 的透视表。


@RecentProjectActivity

IDIn 搭配使用,列出项目中最近更新的工作项。 该宏最多返回 5,000 个项;实际窗口取决于项目活动。


@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的项目。 在 Azure DevOps Server 的 Web 门户中受支持。


@Today

与 DateTime 字段一起使用可以相对于今天进行筛选(例如, Created Date&gt;=@Today-7。 请参阅 按日期或当前迭代进行的查询


全文和部分单词搜索

使用 包含不包含 搜索长文本字段的精确或部分匹配项(这些运算符使用查询索引)。 使用 “包含字词 ”或 “不包含字词 ”搜索确切短语或使用尾随通配符(*); 这些运算符需要全文索引。

只能在部分词或短语末尾使用通配符。 有关示例,请参阅工作项查询示例使用“历史记录”字段查询工作项

注意

并非所有部署都支持全文搜索。 例如,SQL Express 和某些云 SQL 配置不支持全文搜索。 在这些部署中,只有 ContainsDoes Not Contain 运算符可见。

当基础 SQL Server 支持全文索引时,Azure DevOps Server 为长文本字段(PlainText 和 HTML)和标题字段编制索引,以便进行全文搜索。

全文搜索还需要 SQL 排序规则,并配备你使用的语言的已注册分词器。 如果集合数据库的排序规则与受支持的语言不匹配,结果可能与预期不符;在这种情况下,请使用 ContainsDoes Not Contain

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

REST API

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