How To Write Queries In Azure Devops

Understanding how to write queries in Azure DevOps isn’t just a technical skill; it’s the secret to maintaining project velocity. In this comprehensive tutorial, I will walk you through everything from basic flat lists to advanced Work Item Query Language (WIQL) syntax.

How To Write Queries In Azure DevOps

Getting Started: The Query Editor Interface

To begin, navigate to your project in Azure DevOps. On the left-hand sidebar, click on Boards and then select Queries as shown in the screenshot below.

how to write queries in azure devops

I always recommend starting with the All tab to see what your teammates have already built. To create your own, click on + New query.

how to create queries in azure devops

Understanding the Anatomy of a Clause

A query is essentially a collection of “clauses.” Each clause consists of four main parts:

  1. And/Or: The logical connector.
  2. Field: The data point you’re looking for (e.g., State, Assigned To, Work Item Type).
  3. Operator: How you want to compare the field to a value (e.g., =, <>, Contains, Under).
  4. Value: The specific criteria (e.g., “Active”, “@Me”, “Bug”).
how to run query in azure devops

Level 1: Writing Flat List Queries

A Flat List is the most common query type. It returns a simple list of work items that meet your criteria.

Common Operators and Their Uses

I always emphasize these essential operators:

OperatorUse CaseExample
=Exact matchState = Active
<>Not equal toWork Item Type <> Task
ContainsPartial text matchTitle Contains "Cloud"
InMatch any value in a listState In (New, Approved, Committed)
Was EverHistorical searchAssigned To Was Ever "Michael Scott"

Using Macros for Dynamic Results

Don’t hardcode your name or today’s date. Use Macros to make your queries “smart.”

  • @Me: Automatically filters for the person running the query.
  • @Today: Filters based on the current date (useful for “Modified Date > @Today – 7”).
  • @CurrentIteration: Dynamically stays updated as your team moves from Sprint 1 to Sprint 2.

Level 2: Advanced Query Types (Trees and Direct Links)

You likely need to see relationships.

1. Tree of Work Items

This is used to view hierarchies. If you want to see all Features and the User Stories nested beneath them, use a Tree Query.

  • Type of Tree: Set to “Parent/Child” to see the standard breakdown.
  • Filter Options: You can choose to match the top-level items first or the child items first.

2. Work Items and Direct Links

Use this when you need to find dependencies. For example, “Show me all Tasks that are blocked by another Work Item.”

  • Filter for linked items: This allows you to specify the link type (e.g., Predecessor, Successor, or Related).

Level 3: Mastering WIQL (Work Item Query Language)

For those who want to show true authority, there is WIQL. Think of this as the SQL of Azure DevOps. While the visual editor covers 90% of needs, WIQL is essential for complex API integrations or Power BI reporting.

A typical WIQL query looks like this:

$$SELECT [System.Id], [System.Title], [System.State] FROM WorkItems WHERE [System.TeamProject] = @Project AND [Work Item Type] = 'Bug' AND [System.State] = 'Active' ORDER BY [System.CreatedDate] DESC$$

Why use WIQL?

  • Portability: You can copy-paste the syntax into other tools.
  • Complexity: You can write “ASOF” queries to see what the backlog looked like on a specific date in the past.
  • Precision: It allows for specific field reference names that the GUI might hide.

Best Practices

When you save your queries, naming conventions matter—not just for you, but for your team’s ability to find them.

1. Descriptive Naming

Instead of naming a query “My Bugs,” try “Critical_Bugs_Q1_Roadmap.” This tells the user exactly what is inside.

2. Folder Organization

Use the Shared Queries folder to collaborate. I recommend a structure like this:

  • Shared Queries
    • Current Sprint (Daily Standup queries)
    • Release Management (Tracking deployments)
    • Triage (Unassigned or new items)

3. Column Options

Don’t forget to click on Column options at the top. Adding “Changed Date” or “Story Points” to your view can save you from having to click into every individual item. Common Pitfalls to Avoid

Even seasoned veterans in our Atlanta headquarters make these mistakes:

  • The “Or” Trap: Be careful when mixing And and Or clauses. Always use Grouping (the bracket icon in the editor) to ensure the logic evaluates correctly.
  • Permission Issues: If a colleague can’t see your query, ensure you saved it in Shared Queries and that the folder permissions allow “Read.”
  • Over-Filtering: If your query returns zero results, start by removing the most specific clause first.

Summary of Key Query Features

FeatureBest For…Beginner/Advanced
Flat ListSimple tracking and bulk updatesBeginner
Tree QueryViewing Parent/Child hierarchiesIntermediate
Direct LinksFinding dependencies and blockersIntermediate
WIQLAPI usage and complex historical dataAdvanced
Macros (@Me)Creating reusable, personalized viewsBeginner

Video Tutorial

Final Thoughts

Writing queries in Azure DevOps is the bridge between “having data” and “having insights.” By mastering the editor, using macros, and understanding when to shift to a tree or link view, you ensure your team stays focused.

You may also like the following articles:

Azure Virtual Machine

DOWNLOAD FREE AZURE VIRTUAL MACHINE PDF

Download our free 25+ page Azure Virtual Machine guide and master cloud deployment today!